?? calculator.bash.ipc
字號:
<widget class=\"GtkButton\" id=\"buttonMul\"> <property name=\"visible\">True</property> <property name=\"label\" translatable=\"yes\">*</property> <property name=\"response_id\">0</property> </widget> <packing> <property name=\"left_attach\">3</property> <property name=\"right_attach\">4</property> <property name=\"top_attach\">3</property> <property name=\"bottom_attach\">4</property> <property name=\"x_padding\">4</property> <property name=\"y_padding\">8</property> </packing> </child> <child> <widget class=\"GtkButton\" id=\"buttonDiv\"> <property name=\"visible\">True</property> <property name=\"label\" translatable=\"yes\">/</property> <property name=\"response_id\">0</property> </widget> <packing> <property name=\"left_attach\">4</property> <property name=\"right_attach\">5</property> <property name=\"top_attach\">3</property> <property name=\"bottom_attach\">4</property> <property name=\"x_padding\">4</property> <property name=\"y_padding\">8</property> </packing> </child> <child> <widget class=\"GtkButton\" id=\"button0\"> <property name=\"visible\">True</property> <property name=\"label\" translatable=\"yes\">0</property> <property name=\"response_id\">0</property> </widget> <packing> <property name=\"top_attach\">4</property> <property name=\"bottom_attach\">5</property> <property name=\"x_padding\">4</property> <property name=\"y_padding\">8</property> </packing> </child> <child> <widget class=\"GtkButton\" id=\"buttonMemread\"> <property name=\"visible\">True</property> <property name=\"label\" translatable=\"yes\">MR</property> <property name=\"response_id\">0</property> </widget> <packing> <property name=\"left_attach\">4</property> <property name=\"right_attach\">5</property> <property name=\"top_attach\">4</property> <property name=\"bottom_attach\">5</property> <property name=\"x_padding\">4</property> <property name=\"y_padding\">8</property> </packing> </child> <child> <widget class=\"GtkButton\" id=\"buttonEq\"> <property name=\"visible\">True</property> <property name=\"label\" translatable=\"yes\">=</property> <property name=\"response_id\">0</property> </widget> <packing> <property name=\"left_attach\">1</property> <property name=\"right_attach\">3</property> <property name=\"top_attach\">4</property> <property name=\"bottom_attach\">5</property> <property name=\"x_padding\">4</property> <property name=\"y_padding\">8</property> </packing> </child> <child> <widget class=\"GtkButton\" id=\"button2\"> <property name=\"visible\">True</property> <property name=\"label\" translatable=\"yes\">2</property> <property name=\"response_id\">0</property> </widget> <packing> <property name=\"left_attach\">1</property> <property name=\"right_attach\">2</property> <property name=\"top_attach\">1</property> <property name=\"bottom_attach\">2</property> <property name=\"x_padding\">4</property> <property name=\"y_padding\">8</property> </packing> </child> </widget> </child> </widget></glade-interface>"# Initialize libsgtk_initglade_initdefine XML glade_xml_new_from_buffer "'$GUI'" ${#GUI} $NULL $NULLglade_xml_signal_autoconnect $XML# Get main window ID and connect signalglade_xml_get_widget $XML "window"gtk_server_connect "$GTK delete-event window"# Get button ID's and connect signalsglade_xml_get_widget $XML "button0"gtk_server_connect "$GTK clicked button0"glade_xml_get_widget $XML "button1"gtk_server_connect "$GTK clicked button1"glade_xml_get_widget $XML "button2"gtk_server_connect "$GTK clicked button2"glade_xml_get_widget $XML "button3"gtk_server_connect "$GTK clicked button3"glade_xml_get_widget $XML "button4"gtk_server_connect "$GTK clicked button4"glade_xml_get_widget $XML "button5"gtk_server_connect "$GTK clicked button5"glade_xml_get_widget $XML "button6"gtk_server_connect "$GTK clicked button6"glade_xml_get_widget $XML "button7"gtk_server_connect "$GTK clicked button7"glade_xml_get_widget $XML "button8"gtk_server_connect "$GTK clicked button8"glade_xml_get_widget $XML "button9"gtk_server_connect "$GTK clicked button9"# Operatorsglade_xml_get_widget $XML "buttonC"gtk_server_connect "$GTK clicked buttonC"glade_xml_get_widget $XML "buttonCE"gtk_server_connect "$GTK clicked buttonCE"glade_xml_get_widget $XML "buttonAdd"gtk_server_connect "$GTK clicked buttonAdd"glade_xml_get_widget $XML "buttonMinus"gtk_server_connect "$GTK clicked buttonMinus"glade_xml_get_widget $XML "buttonMul"gtk_server_connect "$GTK clicked buttonMul"glade_xml_get_widget $XML "buttonDiv"gtk_server_connect "$GTK clicked buttonDiv"glade_xml_get_widget $XML "buttonEq"gtk_server_connect "$GTK clicked buttonEq"# Memory buttonsglade_xml_get_widget $XML "buttonMemadd"gtk_server_connect "$GTK clicked buttonMemadd"glade_xml_get_widget $XML "buttonMemread"gtk_server_connect "$GTK clicked buttonMemread"# Get entry IDdefine ENTRY glade_xml_get_widget $XML "entry"# Calculator starts with 0gtk_entry_set_text $ENTRY 0#---------------------------------------------------------- Init variables# Initialize calculator statedeclare STATE=0# Initialize temp calculator cachedeclare CACHE=0# Initialize last calculator actiondeclare ACTION=0# Initiliaze calculator total resultdeclare TOTAL=0# Initialize MEM functiondeclare MEM=0#---------------------------------------------------------- Functions# Define action when +, -, *, or / is pressedfunction operator(){if [[ $STATE -eq 0 ]]then case $ACTION in 1) gtk_entry_get_text $ENTRY let CACHE=$CACHE+$GTK gtk_entry_set_text $ENTRY $CACHE;; 2) gtk_entry_get_text $ENTRY let CACHE=$CACHE-$GTK gtk_entry_set_text $ENTRY $CACHE;; 3) gtk_entry_get_text $ENTRY let CACHE=$CACHE*$GTK gtk_entry_set_text $ENTRY $CACHE;; 4) gtk_entry_get_text $ENTRY if [[ $GTK -eq 0 ]] then gtk_entry_set_text $ENTRY "ERROR" else let CACHE=$CACHE/$GTK gtk_entry_set_text $ENTRY $CACHE fi;; esacfi}# Define action when 0 1 2 3 4 5 6 7 8 9 is pressed; requires argumentfunction number(){gtk_entry_get_text $ENTRYif [[ $GTK -eq 0 || $STATE -gt 0 ]]then define CACHE gtk_entry_get_text $ENTRY gtk_entry_set_text $ENTRY $1else gtk_entry_set_text $ENTRY $GTK$1fiSTATE=0}#---------------------------------------------------------- Mainloopuntil [[ $EVENT = "window" ]]do define EVENT gtk_server_callback "wait" case $EVENT in "buttonMemread") STATE=0 define CACHE gtk_entry_get_text $ENTRY gtk_entry_set_text $ENTRY $MEM;; "buttonMemadd") define MEM gtk_entry_get_text $ENTRY;; "buttonC") gtk_entry_set_text $ENTRY 0;; "buttonCE") TOTAL=0 STATE=0 ACTION=0 CACHE=0 MEM=0 gtk_entry_set_text $ENTRY 0;; "buttonAdd") operator ACTION=1 ((STATE+=1));; "buttonMinus") operator ACTION=2 ((STATE+=1));; "buttonMul") operator ACTION=3 ((STATE+=1));; "buttonDiv") operator ACTION=4 ((STATE+=1));; "buttonEq") operator ACTION=0 ((STATE+=1));; "button0") number 0;; "button1") number 1;; "button2") number 2;; "button3") number 3;; "button4") number 4;; "button5") number 5;; "button6") number 6;; "button7") number 7;; "button8") number 8;; "button9") number 9;; esacdone# Exit GTKgtk_server_exit
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -