Changeset 94c197fe3390887d8841edc20b9c2a0b16c76ad0

Show
Ignore:
Timestamp:
12/02/09 00:01:30 (4 years ago)
Author:
Nedko Arnaudov <nedko@…>
Children:
67a1dd501331bba8bcb39ddb141685879f82c944
Parents:
185034b263935826fbacd67d18eff6281471163f
git-committer:
Nedko Arnaudov <nedko@arnaudov.name> / 2009-12-02T00:01:30Z+0200
Message:

gui: initial dialog for starting programs

Location:
gui
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • gui/gui.glade

    r01b9eb2 r94c197f  
    137137                        <accelerator key="U" modifiers="GDK_SHIFT_MASK | GDK_CONTROL_MASK" signal="activate"/> 
    138138                        <child internal-child="image"> 
    139                           <widget class="GtkImage" id="menu-item-image5"> 
     139                          <widget class="GtkImage" id="menu-item-image17"> 
    140140                            <property name="visible">True</property> 
    141141                            <property name="stock">gtk-close</property> 
     
    152152                        <signal name="activate" handler="on_delete_project_menuitem_activate"/> 
    153153                        <child internal-child="image"> 
    154                           <widget class="GtkImage" id="image823"> 
     154                          <widget class="GtkImage" id="image1"> 
    155155                            <property name="visible">True</property> 
    156156                            <property name="stock">gtk-delete</property> 
     
    248248                      </widget> 
    249249                    </child> 
     250                  </widget> 
     251                </child> 
     252              </widget> 
     253            </child> 
     254            <child> 
     255              <widget class="GtkMenuItem" id="application_menu_item"> 
     256                <property name="visible">True</property> 
     257                <property name="label" translatable="yes">_Application</property> 
     258                <property name="use_underline">True</property> 
     259                <child> 
     260                  <widget class="GtkMenu" id="application_menu"> 
     261                    <property name="visible">True</property> 
    250262                    <child> 
    251263                      <widget class="GtkImageMenuItem" id="menu_item_start_app"> 
    252264                        <property name="visible">True</property> 
    253265                        <property name="sensitive">False</property> 
    254                         <property name="label" translatable="yes">Start Application</property> 
    255                         <property name="use_underline">True</property> 
    256                         <accelerator key="R" modifiers="GDK_CONTROL_MASK" signal="activate"/> 
    257                         <child internal-child="image"> 
    258                           <widget class="GtkImage" id="menu-item-image12"> 
     266                        <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     267                        <property name="label" translatable="yes">Run...</property> 
     268                        <property name="use_underline">True</property> 
     269                        <accelerator key="F2" modifiers="" signal="activate"/> 
     270                        <child internal-child="image"> 
     271                          <widget class="GtkImage" id="menu-item-image151"> 
     272                            <property name="visible">True</property> 
     273                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    259274                            <property name="stock">gtk-execute</property> 
    260275                          </widget> 
     
    321336                        <property name="use_underline">True</property> 
    322337                        <child internal-child="image"> 
    323                           <widget class="GtkImage" id="menu-item-image17"> 
     338                          <widget class="GtkImage" id="menu-item-image18"> 
    324339                            <property name="visible">True</property> 
    325340                            <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     
    10221037    <property name="buttons">GTK_BUTTONS_CLOSE</property> 
    10231038  </widget> 
     1039  <widget class="GtkDialog" id="app_dialog"> 
     1040    <property name="border_width">5</property> 
     1041    <property name="title" translatable="yes">Run custom command</property> 
     1042    <property name="window_position">GTK_WIN_POS_CENTER_ON_PARENT</property> 
     1043    <property name="default_width">400</property> 
     1044    <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> 
     1045    <property name="transient_for">main_win</property> 
     1046    <child internal-child="vbox"> 
     1047      <widget class="GtkVBox" id="dialog-vbox10"> 
     1048        <property name="visible">True</property> 
     1049        <property name="orientation">GTK_ORIENTATION_VERTICAL</property> 
     1050        <property name="spacing">2</property> 
     1051        <property name="orientation">GTK_ORIENTATION_VERTICAL</property> 
     1052        <child> 
     1053          <widget class="GtkTable" id="table1"> 
     1054            <property name="visible">True</property> 
     1055            <property name="n_rows">7</property> 
     1056            <property name="n_columns">2</property> 
     1057            <property name="column_spacing">5</property> 
     1058            <property name="row_spacing">5</property> 
     1059            <child> 
     1060              <widget class="GtkLabel" id="label4"> 
     1061                <property name="visible">True</property> 
     1062                <property name="xalign">0</property> 
     1063                <property name="yalign">0</property> 
     1064                <property name="label" translatable="yes">Command:</property> 
     1065              </widget> 
     1066              <packing> 
     1067                <property name="x_options">GTK_FILL</property> 
     1068                <property name="y_options">GTK_FILL</property> 
     1069              </packing> 
     1070            </child> 
     1071            <child> 
     1072              <widget class="GtkLabel" id="label5"> 
     1073                <property name="visible">True</property> 
     1074                <property name="xalign">0</property> 
     1075                <property name="label" translatable="yes">Name:</property> 
     1076              </widget> 
     1077              <packing> 
     1078                <property name="top_attach">1</property> 
     1079                <property name="bottom_attach">2</property> 
     1080                <property name="x_options">GTK_FILL</property> 
     1081                <property name="y_options">GTK_FILL</property> 
     1082              </packing> 
     1083            </child> 
     1084            <child> 
     1085              <widget class="GtkEntry" id="app_name_entry"> 
     1086                <property name="visible">True</property> 
     1087                <property name="can_focus">True</property> 
     1088                <property name="invisible_char">•</property> 
     1089                <property name="activates_default">True</property> 
     1090              </widget> 
     1091              <packing> 
     1092                <property name="left_attach">1</property> 
     1093                <property name="right_attach">2</property> 
     1094                <property name="top_attach">1</property> 
     1095                <property name="bottom_attach">2</property> 
     1096                <property name="x_options">GTK_FILL</property> 
     1097                <property name="y_options">GTK_FILL</property> 
     1098              </packing> 
     1099            </child> 
     1100            <child> 
     1101              <widget class="GtkCheckButton" id="app_terminal_check_button"> 
     1102                <property name="visible">True</property> 
     1103                <property name="can_focus">True</property> 
     1104                <property name="label" translatable="yes">Run in Terminal</property> 
     1105                <property name="response_id">0</property> 
     1106                <property name="draw_indicator">True</property> 
     1107              </widget> 
     1108              <packing> 
     1109                <property name="right_attach">2</property> 
     1110                <property name="top_attach">2</property> 
     1111                <property name="bottom_attach">3</property> 
     1112                <property name="x_options">GTK_FILL</property> 
     1113                <property name="y_options">GTK_FILL</property> 
     1114              </packing> 
     1115            </child> 
     1116            <child> 
     1117              <widget class="GtkRadioButton" id="app_level0"> 
     1118                <property name="visible">True</property> 
     1119                <property name="can_focus">True</property> 
     1120                <property name="label" translatable="yes">Level 0</property> 
     1121                <property name="response_id">0</property> 
     1122                <property name="active">True</property> 
     1123                <property name="draw_indicator">True</property> 
     1124              </widget> 
     1125              <packing> 
     1126                <property name="right_attach">2</property> 
     1127                <property name="top_attach">3</property> 
     1128                <property name="bottom_attach">4</property> 
     1129                <property name="x_options">GTK_FILL</property> 
     1130                <property name="y_options">GTK_FILL</property> 
     1131              </packing> 
     1132            </child> 
     1133            <child> 
     1134              <widget class="GtkRadioButton" id="app_level1"> 
     1135                <property name="visible">True</property> 
     1136                <property name="sensitive">False</property> 
     1137                <property name="can_focus">True</property> 
     1138                <property name="label" translatable="yes">Level 1</property> 
     1139                <property name="response_id">0</property> 
     1140                <property name="active">True</property> 
     1141                <property name="draw_indicator">True</property> 
     1142                <property name="group">app_level0</property> 
     1143              </widget> 
     1144              <packing> 
     1145                <property name="right_attach">2</property> 
     1146                <property name="top_attach">4</property> 
     1147                <property name="bottom_attach">5</property> 
     1148                <property name="x_options">GTK_FILL</property> 
     1149                <property name="y_options">GTK_FILL</property> 
     1150              </packing> 
     1151            </child> 
     1152            <child> 
     1153              <widget class="GtkEntry" id="app_command_entry"> 
     1154                <property name="visible">True</property> 
     1155                <property name="can_focus">True</property> 
     1156                <property name="has_focus">True</property> 
     1157                <property name="invisible_char">•</property> 
     1158                <property name="activates_default">True</property> 
     1159              </widget> 
     1160              <packing> 
     1161                <property name="left_attach">1</property> 
     1162                <property name="right_attach">2</property> 
     1163                <property name="y_options">GTK_FILL</property> 
     1164              </packing> 
     1165            </child> 
     1166            <child> 
     1167              <widget class="GtkRadioButton" id="app_level2"> 
     1168                <property name="visible">True</property> 
     1169                <property name="sensitive">False</property> 
     1170                <property name="can_focus">True</property> 
     1171                <property name="label" translatable="yes">Level 2</property> 
     1172                <property name="response_id">0</property> 
     1173                <property name="active">True</property> 
     1174                <property name="draw_indicator">True</property> 
     1175                <property name="group">app_level0</property> 
     1176              </widget> 
     1177              <packing> 
     1178                <property name="right_attach">2</property> 
     1179                <property name="top_attach">5</property> 
     1180                <property name="bottom_attach">6</property> 
     1181                <property name="x_options">GTK_FILL</property> 
     1182                <property name="y_options">GTK_FILL</property> 
     1183              </packing> 
     1184            </child> 
     1185            <child> 
     1186              <widget class="GtkRadioButton" id="app_level3"> 
     1187                <property name="visible">True</property> 
     1188                <property name="sensitive">False</property> 
     1189                <property name="can_focus">True</property> 
     1190                <property name="label" translatable="yes">Level 3</property> 
     1191                <property name="response_id">0</property> 
     1192                <property name="active">True</property> 
     1193                <property name="draw_indicator">True</property> 
     1194                <property name="group">app_level0</property> 
     1195              </widget> 
     1196              <packing> 
     1197                <property name="right_attach">2</property> 
     1198                <property name="top_attach">6</property> 
     1199                <property name="bottom_attach">7</property> 
     1200                <property name="x_options">GTK_FILL</property> 
     1201                <property name="y_options">GTK_FILL</property> 
     1202              </packing> 
     1203            </child> 
     1204          </widget> 
     1205          <packing> 
     1206            <property name="position">1</property> 
     1207          </packing> 
     1208        </child> 
     1209        <child internal-child="action_area"> 
     1210          <widget class="GtkHButtonBox" id="dialog-action_area10"> 
     1211            <property name="visible">True</property> 
     1212            <property name="layout_style">GTK_BUTTONBOX_END</property> 
     1213            <child> 
     1214              <widget class="GtkButton" id="button1"> 
     1215                <property name="visible">True</property> 
     1216                <property name="can_focus">True</property> 
     1217                <property name="can_default">True</property> 
     1218                <property name="receives_default">True</property> 
     1219                <property name="label" translatable="yes">gtk-cancel</property> 
     1220                <property name="use_stock">True</property> 
     1221                <property name="response_id">1</property> 
     1222              </widget> 
     1223              <packing> 
     1224                <property name="expand">False</property> 
     1225                <property name="fill">False</property> 
     1226              </packing> 
     1227            </child> 
     1228            <child> 
     1229              <widget class="GtkButton" id="button2"> 
     1230                <property name="visible">True</property> 
     1231                <property name="can_focus">True</property> 
     1232                <property name="can_default">True</property> 
     1233                <property name="has_default">True</property> 
     1234                <property name="receives_default">True</property> 
     1235                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     1236                <property name="label" translatable="yes">gtk-ok</property> 
     1237                <property name="use_stock">True</property> 
     1238                <property name="response_id">2</property> 
     1239              </widget> 
     1240              <packing> 
     1241                <property name="expand">False</property> 
     1242                <property name="fill">False</property> 
     1243                <property name="position">1</property> 
     1244              </packing> 
     1245            </child> 
     1246          </widget> 
     1247          <packing> 
     1248            <property name="expand">False</property> 
     1249            <property name="pack_type">GTK_PACK_END</property> 
     1250          </packing> 
     1251        </child> 
     1252      </widget> 
     1253    </child> 
     1254  </widget> 
    10241255</glade-interface> 
  • gui/main.c

    r57a7eb7 r94c197f  
    5858GtkWidget * g_menu_item_destroy_room; 
    5959GtkWidget * g_menu_item_load_project; 
    60 GtkWidget * g_menu_item_start_app; 
    6160GtkWidget * g_menu_item_daemon_exit; 
    6261GtkWidget * g_menu_item_jack_configure; 
     
    6463GtkWidget * g_menu_item_view_toolbar; 
    6564GtkWidget * g_toolbar; 
     65GtkWidget * g_menu_item_start_app; 
    6666 
    6767GtkWidget * g_name_dialog; 
     68GtkWidget * g_app_dialog; 
    6869 
    6970graph_view_handle g_jack_view = NULL; 
     
    223224  gtk_dialog_run(GTK_DIALOG(dialog)); 
    224225  gtk_widget_hide(dialog); 
     226} 
     227 
     228void run_custom_command_dialog(void) 
     229{ 
     230  guint result; 
     231  GtkEntry * command_entry = GTK_ENTRY(get_glade_widget("app_command_entry")); 
     232  GtkEntry * name_entry = GTK_ENTRY(get_glade_widget("app_name_entry")); 
     233  GtkToggleButton * terminal_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_terminal_check_button")); 
     234  /* GtkToggleButton * level0_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level0")); */ 
     235  /* GtkToggleButton * level1_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level1")); */ 
     236  /* GtkToggleButton * level2_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level2")); */ 
     237  /* GtkToggleButton * level3_button = GTK_TOGGLE_BUTTON(get_glade_widget("app_level3")); */ 
     238 
     239  gtk_entry_set_text(name_entry, ""); 
     240  gtk_entry_set_text(command_entry, ""); 
     241  gtk_toggle_button_set_active(terminal_button, FALSE); 
     242 
     243  gtk_widget_show(g_app_dialog); 
     244 
     245  result = gtk_dialog_run(GTK_DIALOG(g_app_dialog)); 
     246  if (result == 2) 
     247  { 
     248    log_info("'%s':'%s' %s", gtk_entry_get_text(name_entry), gtk_entry_get_text(command_entry), gtk_toggle_button_get_active(terminal_button) ? "terminal" : "shell"); 
     249  } 
     250 
     251  gtk_widget_hide(g_app_dialog); 
    225252} 
    226253 
     
    393420} 
    394421 
     422static void start_app(void) 
     423{ 
     424  run_custom_command_dialog(); 
     425} 
     426 
    395427static void start_studio(void) 
    396428{ 
     
    470502  gtk_widget_set_sensitive(g_menu_item_unload_studio, true); 
    471503  gtk_widget_set_sensitive(g_menu_item_rename_studio, true); 
     504  gtk_widget_set_sensitive(g_menu_item_start_app, true); 
    472505  //gtk_widget_set_sensitive(g_menu_item_create_room, true); 
    473506  //gtk_widget_set_sensitive(g_menu_item_destroy_room, true); 
    474507  //gtk_widget_set_sensitive(g_menu_item_load_project, true); 
    475   //gtk_widget_set_sensitive(g_menu_item_start_app, true); 
    476508 
    477509  gtk_label_set_text(GTK_LABEL(g_studio_status_label), name); 
     
    497529  gtk_widget_set_sensitive(g_menu_item_unload_studio, false); 
    498530  gtk_widget_set_sensitive(g_menu_item_rename_studio, false); 
     531  gtk_widget_set_sensitive(g_menu_item_start_app, false); 
    499532  //gtk_widget_set_sensitive(g_menu_item_create_room, false); 
    500533  //gtk_widget_set_sensitive(g_menu_item_destroy_room, false); 
    501534  //gtk_widget_set_sensitive(g_menu_item_load_project, false); 
    502   //gtk_widget_set_sensitive(g_menu_item_start_app, false); 
    503535 
    504536  gtk_label_set_text(GTK_LABEL(g_studio_status_label), "No studio loaded"); 
     
    644676  g_buffer_size_combo = get_glade_widget("buffer_size_combo"); 
    645677  g_menu_item_new_studio = get_glade_widget("menu_item_new_studio"); 
     678  g_menu_item_start_app = get_glade_widget("menu_item_start_app"); 
    646679  g_menu_item_start_studio = get_glade_widget("menu_item_start_studio"); 
    647680  g_menu_item_stop_studio = get_glade_widget("menu_item_stop_studio"); 
     
    652685  g_menu_item_destroy_room = get_glade_widget("menu_item_destroy_room"); 
    653686  g_menu_item_load_project = get_glade_widget("menu_item_load_project"); 
    654   g_menu_item_start_app = get_glade_widget("menu_item_start_app"); 
    655687  g_menu_item_daemon_exit = get_glade_widget("menu_item_daemon_exit"); 
    656688  g_menu_item_jack_configure = get_glade_widget("menu_item_jack_configure"); 
     
    660692 
    661693  g_name_dialog = get_glade_widget("name_dialog"); 
     694  g_app_dialog = get_glade_widget("app_dialog"); 
    662695 
    663696  init_studio_list(&g_load_studio_list, "menu_item_load_studio", "load_studio_menu", on_load_studio); 
     
    703736  g_signal_connect(G_OBJECT(g_menu_item_jack_configure), "activate", G_CALLBACK(jack_configure), NULL); 
    704737  g_signal_connect(G_OBJECT(get_glade_widget("menu_item_help_about")), "activate", G_CALLBACK(show_about), NULL); 
     738  g_signal_connect(G_OBJECT(g_menu_item_start_app), "activate", G_CALLBACK(start_app), NULL); 
    705739 
    706740  gtk_widget_show(g_main_win);