⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gtk.bas

📁 gtk_server的源代码
💻 BAS
📖 第 1 页 / 共 5 页
字号:
GTK_TYPE{frm$} = "frame"frame = frm$END FUNCTIONREM ************************************************************** List widgetFUNCTION list(text, xsize, ysize)LOCAL lst$, iter$, tree$, column$, sel$, sw$, iiter$ = GUI("gtk_server_opaque")lst$ = GUI("gtk_list_store_new 1 64")tree$ = GUI("gtk_tree_view_new_with_model", lst$)GUI("gtk_tree_view_set_headers_visible", tree$, 0)GUI("gtk_widget_set_name", tree$, tree$)GUI("gtk_server_connect", tree$, "button-press-event", tree$, 1)sel$ = GUI("gtk_tree_view_get_selection", tree$)GUI("gtk_tree_selection_set_mode", sel$, 1)column$ = GUI("gtk_tree_view_column_new_with_attributes", "dummy", GUI("gtk_cell_renderer_text_new"), "text", 0, "NULL")GUI("gtk_tree_view_append_column", tree$, column$)sw$ = GUI("gtk_scrolled_window_new NULL NULL")GUI("gtk_scrolled_window_set_policy", sw$, 1, 1)GUI("gtk_scrolled_window_set_shadow_type", sw$, 1)GUI("gtk_container_add", sw$, tree$)GUI("gtk_widget_set_size_request", sw$, xsize, ysize)GUI("gtk_widget_show_all", sw$)IF LBOUND(text) = undef THEN	PRINT "WARNING: Pass an array to create a list!\n"ELSE	FOR i = LBOUND(text) TO UBOUND(text)		GUI("gtk_list_store_append", lst$, iter$)		GUI("gtk_list_store_set", lst$, iter$, 0, "\"" & text[i] & "\"", -1)	NEXT i	GTK_LIST_ARRAY{sw$} = textEND IFGTK_LIST_STORE{sw$} = lst$GTK_LIST_ITER{sw$} = iter$GTK_LIST_SELECT{sw$} = sel$GTK_CONTAINER{sw$} = tree$GTK_TYPE{sw$} = "list"list = sw$END FUNCTIONREM ************************************************************** Get text from widgetFUNCTION get_text(widget)LOCAL arrIF GTK_TYPE{widget} = "window" THEN get_text = GUI("gtk_window_get_title", widget)IF GTK_TYPE{widget} = "button" THEN get_text = GUI("gtk_button_get_label", widget)IF GTK_TYPE{widget} = "check" THEN get_text = GUI("gtk_button_get_label", widget)IF GTK_TYPE{widget} = "radio" THEN get_text = GUI("gtk_button_get_label", widget)IF GTK_TYPE{widget} = "entry" THEN get_text = GUI("gtk_entry_get_text", widget)IF GTK_TYPE{widget} = "password" THEN get_text = GUI("gtk_entry_get_text", widget)IF GTK_TYPE{widget} = "label" THEN get_text = GUI("gtk_label_get_text", widget)IF GTK_TYPE{widget} = "droplist" THEN get_text = GUI("gtk_combo_box_get_active_text", widget)IF GTK_TYPE{widget} = "text" THEN	GUI("gtk_text_buffer_get_start_iter", GTK_CONTAINER{widget}, GTK_START_ITER{widget})	GUI("gtk_text_buffer_get_end_iter", GTK_CONTAINER{widget}, GTK_END_ITER{widget})	get_text = GUI("gtk_text_buffer_get_text", GTK_CONTAINER{widget}, GTK_START_ITER{widget}, GTK_END_ITER{widget}, 1)END IFIF GTK_TYPE{widget} = "separator" THEN PRINT "WARNING: Cannot get text of " & GTK_TYPE{widget} & " widget!\n"IF GTK_TYPE{widget} = "frame" THEN get_text = GUI("gtk_frame_get_label", widget)IF GTK_TYPE{widget} = "list" THEN	IF VAL(GUI("gtk_tree_selection_get_selected", GTK_LIST_SELECT{widget}, "NULL", GTK_LIST_ITER{widget})) THEN		IF GTK_LIST_ARRAY{widget} <> undef THEN			arr = GTK_LIST_ARRAY{widget}			get_text = arr[LBOUND(arr) + VAL(GUI("gtk_tree_model_get_string_from_iter", GTK_LIST_STORE{widget}, GTK_LIST_ITER{widget}))]		END IF	END IFEND IFEND FUNCTIONREM ************************************************************** Set text in widgetFUNCTION set_text(widget, text)LOCAL mark$, iIF GTK_TYPE{widget} = "window" THEN GUI("gtk_window_set_title", widget,  "\"" & text & "\"")IF GTK_TYPE{widget} = "button" THEN GUI("gtk_button_set_label", widget, "\"" & text & "\"")IF GTK_TYPE{widget} = "check" THEN GUI("gtk_button_set_label", widget, "\"" & text & "\"")IF GTK_TYPE{widget} = "radio" THEN GUI("gtk_button_set_label", widget, "\"" & text & "\"")IF GTK_TYPE{widget} = "entry" THEN GUI("gtk_entry_set_text", widget, "\"" & text & "\"")IF GTK_TYPE{widget} = "password" THEN GUI("gtk_entry_set_text", widget, "\"" & text & "\"")IF GTK_TYPE{widget} = "label" THEN GUI("gtk_label_set_text", widget, "\"" & text & "\"")IF GTK_TYPE{widget} = "droplist" THEN	IF GTK_COMBO_BOUND{widget} <> undef THEN		FOR i = 0 TO GTK_COMBO_BOUND{widget}			GUI("gtk_combo_box_remove_text", widget, 0)		NEXT i	END IF	IF LBOUND(text) = undef THEN		PRINT "WARNING: Pass an array to recreate a droplist!\n"		GTK_COMBO_BOUND{drop$} = undef	ELSE		FOR i = LBOUND(text) TO UBOUND(text)			GUI("gtk_combo_box_append_text", widget, "\"" & text[i] & "\"")		NEXT i		GTK_COMBO_BOUND{drop$} = UBOUND(text) - LBOUND(text)	END IF	GUI("gtk_combo_box_set_active", widget, 0)END IFIF GTK_TYPE{widget} = "text" THEN	GUI("gtk_text_buffer_set_text", GTK_CONTAINER{widget}, "\"" & text & "\"", -1)	GUI("gtk_text_buffer_get_end_iter", GTK_CONTAINER{widget}, GTK_END_ITER{widget})	mark$ = GUI("gtk_text_buffer_create_mark", GTK_CONTAINER{widget}, "mymark", GTK_END_ITER{widget}, 0)	GUI("gtk_text_view_scroll_to_mark", GTK_TEXT_VIEW{widget}, mark$, 0, 1, 0.0, 1.0)	GUI("gtk_text_buffer_delete_mark", GTK_CONTAINER{widget}, mark$)END IFIF GTK_TYPE{widget} = "separator" THEN PRINT "WARNING: Cannot set text of " & GTK_TYPE{widget} & " widget!\n"IF GTK_TYPE{widget} = "frame" THEN GUI("gtk_frame_set_label", widget, "\"" & text & "\"")IF GTK_TYPE{widget} = "list" THEN	GUI("gtk_list_store_clear", GTK_LIST_STORE{widget})	IF LBOUND(text) = undef THEN		PRINT "WARNING: Pass an array to create a list!\n"		GTK_LIST_ARRAY = undef	ELSE		FOR i = LBOUND(text) TO UBOUND(text)			GUI("gtk_list_store_append", GTK_LIST_STORE{widget}, GTK_LIST_ITER{widget})			GUI("gtk_list_store_set", GTK_LIST_STORE{widget}, GTK_LIST_ITER{widget}, 0, "\"" & text[i] & "\"", -1)		NEXT i		GTK_LIST_ARRAY{widget} = text	END IFEND IFEND FUNCTIONREM ************************************************************** Find selection of chek/option buttonFUNCTION get_value(widget)IF GTK_TYPE{widget} = "check" THEN	get_value = VAL(GUI("gtk_toggle_button_get_active", widget))ELSE IF GTK_TYPE{widget} = "radio" THEN	get_value = VAL(GUI("gtk_toggle_button_get_active", widget))ELSE IF GTK_TYPE{widget} = "droplist" THEN	get_value = VAL(GUI("gtk_combo_box_get_active", widget))ELSE IF GTK_TYPE{widget} = "text" THEN	get_value = VAL(GUI("gtk_text_buffer_get_line_count", GTK_CONTAINER{widget}))ELSE IF GTK_TYPE{widget} = "list" THEN	IF VAL(GUI("gtk_tree_selection_get_selected", GTK_LIST_SELECT{widget}, "NULL", GTK_LIST_ITER{widget})) THEN		get_value = VAL(GUI("gtk_tree_model_get_string_from_iter", GTK_LIST_STORE{widget}, GTK_LIST_ITER{widget}))	END IFELSE	PRINT "WARNING: Cannot get status of " & GTK_TYPE{widget} & " widget!\n"END IFEND FUNCTIONREM ************************************************************** Set selection of check/option buttonFUNCTION set_value(widget, n)LOCAL path, mark$IF GTK_TYPE{widget} = "check" THEN	GUI("gtk_toggle_button_set_active", widget, 1)ELSE IF GTK_TYPE{widget} = "radio" THEN	GUI("gtk_toggle_button_set_active", widget, 1)ELSE IF GTK_TYPE{widget} = "droplist" THEN	GUI("gtk_combo_box_set_active", widget, n)ELSE IF GTK_TYPE{widget} = "text" THEN	GUI("gtk_text_buffer_get_iter_at_line", GTK_CONTAINER{widget}, GTK_END_ITER{widget}, n)	mark$ = GUI("gtk_text_buffer_create_mark", GTK_CONTAINER{widget}, "mymark", GTK_END_ITER{widget}, 0)	GUI("gtk_text_view_scroll_to_mark", GTK_TEXT_VIEW{widget}, mark$, 0, 1, 0.0, 1.0)	GUI("gtk_text_buffer_delete_mark", GTK_CONTAINER{widget}, mark$)ELSE IF GTK_TYPE{widget} = "list" THEN	path = GUI("gtk_tree_path_new_from_string", n)	GUI("gtk_tree_selection_select_path", GTK_LIST_SELECT{widget}, path)	GUI("gtk_tree_path_free", path)ELSE	PRINT "WARNING: Cannot activate " & GTK_TYPE{widget} & " widget!\n"END IFEND FUNCTIONREM ************************************************************** Focus to widgetFUNCTION focus(widget)GUI("gtk_widget_grab_focus", widget)END FUNCTIONREM ************************************************************** Foreground colorsFUNCTION fg_color(widget, r, g, b)LOCAL tmp$, gtksettings$gtksettings$ = GUI("gtk_settings_get_default")IF GTK_TYPE{widget} = "window" THEN PRINT "WARNING: Cannot set foreground color of window widget!\n"IF GTK_TYPE{widget} = "button" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { fg[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { fg[PRELIGHT] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { fg[ACTIVE] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "*\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "check" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { fg[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { fg[PRELIGHT] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { fg[ACTIVE] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "*\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "radio" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { fg[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { fg[PRELIGHT] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { fg[ACTIVE] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "*\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "entry" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { text[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { GtkWidget::cursor_color = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "password" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { text[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { GtkWidget::cursor_color = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "label" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { fg[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "droplist" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { text[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { text[PRELIGHT] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "*\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "text" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { text[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { GtkWidget::cursor_color = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & GTK_TEXT_VIEW{widget} & "\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "separator" THEN PRINT "WARNING: Cannot set foreground color of separator widget!\n"IF GTK_TYPE{widget} = "frame" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { fg[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "*\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "list" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { text[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & GTK_CONTAINER{widget} & "\\\" style \\\"" & widget & "\\\"\"")END IFGUI("gtk_rc_reset_styles", gtksettings$)END FUNCTIONREM ************************************************************** Background colorsFUNCTION bg_color(widget, r, g, b)LOCAL tmp$, gtksettings$gtksettings$ = GUI("gtk_settings_get_default")IF GTK_TYPE{widget} = "window" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { bg[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"" & widget & "\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "button" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { bg[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	IF r < 60415 THEN r = r + 5120 	IF g < 60415 THEN g = g + 5120	IF b < 60415 THEN b = b + 5120	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { bg[PRELIGHT] = {" & r & ", " & g & ", " & b & "} }\"")	IF r > 5120 THEN r = r - 5120	IF g > 5120 THEN g = g - 5120	IF b > 5120 THEN b = b - 5120	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { bg[ACTIVE] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "*\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "check" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { bg[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	IF r < 60415 THEN r = r + 5120 	IF g < 60415 THEN g = g + 5120	IF b < 60415 THEN b = b + 5120	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { bg[PRELIGHT] = {" & r & ", " & g & ", " & b & "} }\"")	IF r > 5120 THEN r = r - 5120	IF g > 5120 THEN g = g - 5120	IF b > 5120 THEN b = b - 5120	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { bg[ACTIVE] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "*\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "radio" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { bg[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	IF r < 60415 THEN r = r + 5120 	IF g < 60415 THEN g = g + 5120	IF b < 60415 THEN b = b + 5120	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { bg[PRELIGHT] = {" & r & ", " & g & ", " & b & "} }\"")	IF r > 5120 THEN r = r - 5120	IF g > 5120 THEN g = g - 5120	IF b > 5120 THEN b = b - 5120	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { bg[ACTIVE] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "*\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "entry" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { base[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "password" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { base[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & widget & "\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "text" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { base[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	GUI("gtk_rc_parse_string \"widget \\\"*.*." & GTK_TEXT_VIEW{widget} & "\\\" style \\\"" & widget & "\\\"\"")END IFIF GTK_TYPE{widget} = "droplist" THEN	GUI("gtk_rc_parse_string", "\"style \\\"" & widget & "\\\" { bg[NORMAL] = {" & r & ", " & g & ", " & b & "} }\"")	IF r < 60415 THEN r = r + 5120 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -