void interface (gint argc, gchar *argv[]) { GtkWidget *MenuBar; GtkWidget *VBox; GtkWidget *HandleBox; gtk_set_locale(); gtk_init (&argc, &argv); Settings = init_settings (); MainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW(MainWindow), g_strconcat (WELCOME_MSG, " ", APP_NAME, " ", VERSION_NUMBER, NULL)); gtk_window_set_policy (GTK_WINDOW(MainWindow), TRUE, TRUE, FALSE); gtk_widget_set_usize (MainWindow, MAIN_WINDOW_WIDTH, MAIN_WINDOW_HEIGHT); gtk_signal_connect (GTK_OBJECT(MainWindow), "delete_event", (GtkSignalFunc) quit, NULL); gtk_signal_connect (GTK_OBJECT(MainWindow), "destroy", (GtkSignalFunc) quit, NULL); FileProperties = g_array_new (TRUE, FALSE, sizeof(t_fprops)); VBox = gtk_vbox_new (FALSE, 0); gtk_container_add (GTK_CONTAINER(MainWindow), VBox); HandleBox = gtk_handle_box_new(); gtk_container_set_border_width (GTK_CONTAINER(HandleBox), 2); gtk_box_pack_start (GTK_BOX(VBox), HandleBox, FALSE, FALSE, 0); init_toolbar (GTK_BOX(VBox)); MainNotebook = gtk_notebook_new (); read_uedit_wordfile (WORDFILE); editor_init(); MenuBar = menubar_new (MainWindow); gtk_container_add (GTK_CONTAINER(HandleBox), MenuBar); gtk_notebook_popup_enable (GTK_NOTEBOOK(MainNotebook)); gtk_notebook_set_homogeneous_tabs (GTK_NOTEBOOK(MainNotebook), TRUE); gtk_notebook_set_scrollable (GTK_NOTEBOOK(MainNotebook), TRUE); gtk_box_pack_start (GTK_BOX(VBox), MainNotebook, TRUE, TRUE, 0); gtk_signal_connect (GTK_OBJECT(MainNotebook), "switch_page", (GtkSignalFunc) set_title, NULL); init_msgbar (GTK_BOX(VBox)); print_msg ("You're the welcome..."); command_line (argc, argv); autosave (AUTOSAVE_DELAY); gtk_widget_show_all (MainWindow); if (!MSGBAR_DISPLAY) hide_msgbar (); if (!TOOLBAR_DISPLAY) hide_toolbar (); gtk_timeout_add (80, (GtkFunction)display_line_column, NULL); gtk_main (); set_preferences_to_disk (&Settings, NULL); gtk_item_factory_dump_rc (g_strconcat (g_get_home_dir (), PATH_SEP_STRING, CONF_DIR, PATH_SEP_STRING, "AccelRC", NULL), NULL, FALSE); }
static void set_vis_plugin(const bg_plugin_info_t * plugin, void * data) { visualizer_t * v = (visualizer_t*)data; bg_visualizer_set_vis_plugin(v->visualizer, plugin); bg_plugin_registry_set_default(v->plugin_reg, BG_PLUGIN_VISUALIZATION, BG_PLUGIN_VISUALIZE_FRAME | BG_PLUGIN_VISUALIZE_GL, plugin->name); if(bg_visualizer_need_restart(v->visualizer)) { close_vis(v); open_vis(v); } hide_toolbar(v); }
static void toggle_fullscreen(visualizer_t * v) { if(v->current_window == &v->normal_window) { /* Reparent toolbar */ gtk_container_remove(GTK_CONTAINER(v->normal_window.box), v->toolbar); attach_toolbar(v, &v->fullscreen_window); /* Hide normal window, show fullscreen window */ gtk_widget_show(v->fullscreen_window.window); gtk_widget_hide(v->normal_window.window); gtk_window_fullscreen(GTK_WINDOW(v->fullscreen_window.window)); /* Update toolbar */ gtk_widget_show(v->nofullscreen_button); gtk_widget_hide(v->fullscreen_button); gtk_widget_hide(v->config_button); gtk_widget_hide(v->plugin_button); bg_gtk_plugin_widget_single_show_buttons(v->vis_plugins, 0); v->current_window = &v->fullscreen_window; } else { /* Reparent toolbar */ gtk_container_remove(GTK_CONTAINER(v->fullscreen_window.box), v->toolbar); attach_toolbar(v, &v->normal_window); /* Hide normal window, show fullscreen window */ gtk_widget_show(v->normal_window.window); gtk_widget_hide(v->fullscreen_window.window); /* Update toolbar */ gtk_widget_show(v->fullscreen_button); gtk_widget_hide(v->nofullscreen_button); gtk_widget_show(v->config_button); gtk_widget_show(v->plugin_button); bg_gtk_plugin_widget_single_show_buttons(v->vis_plugins, 1); v->current_window = &v->normal_window; } hide_toolbar(v); v->mouse_in_toolbar = 0; }
static void button_callback(GtkWidget * w, gpointer data) { visualizer_t * win = (visualizer_t*)data; if((w == win->quit_button) || (w == win->normal_window.window)) gtk_main_quit(); else if(w == win->config_button) bg_dialog_show(win->cfg_dialog, win->current_window->window); else if((w == win->fullscreen_button) || (w == win->nofullscreen_button)) toggle_fullscreen(win); else if(w == win->plugin_button) { gtk_widget_show(win->plugin_window.window); gtk_widget_set_sensitive(win->plugin_button, 0); } else if(w == win->restart_button) { if(win->vis_open) { close_vis(win); open_audio(win); open_vis(win); hide_toolbar(win); } } else if(w == win->log_button) { gtk_widget_set_sensitive(win->log_button, 0); bg_gtk_log_window_show(win->log_window); } else if(w == win->about_button) { gtk_widget_set_sensitive(win->about_button, 0); bg_gtk_about_window_create("Gmerlin visualizer", VERSION, "visualizer_icon.png", about_window_close_callback, win); } else if(w == win->help_button) bg_display_html_help("userguide/Visualizer.html"); }
static gboolean toolbar_timeout(void * data) { visualizer_t * v; v = (visualizer_t *)data; if(!v->toolbar_visible) return TRUE; /* Maybe the toolbar will be hidden next time */ if(!v->do_hide_toolbar) { v->do_hide_toolbar = 1; return TRUE; } if(!v->mouse_in_toolbar) { hide_toolbar(v); } return TRUE; }
void menu_items_treatment (GtkWidget *Widget, guint Op) { gint CurrentPage, i; CurrentPage = gtk_notebook_get_current_page (GTK_NOTEBOOK(MainNotebook)); switch(Op) { case NEW : new_file (); break; case OPEN : open_file (); break; case SAVE : save_file (); break; case SAVE_ALL : save_all (); break; case SAVE_AS : save_file_as (); break; case PRINT : print_buffer (); break; case CLOSE : close_file (); break; case CLOSE_ALL : close_all (); break; case QUIT : quit (); break; case UNDO : if (OpenedFilesCnt) { proceed_undo (); break; } case REDO : if (OpenedFilesCnt) { proceed_redo (); break; } case CUT : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { gtk_editable_cut_clipboard (GTK_EDITABLE(FPROPS(CurrentPage, Text))); print_msg ("Selection cut to Clipboard..."); } break; case COPY : if (OpenedFilesCnt) { gtk_editable_copy_clipboard (GTK_EDITABLE(FPROPS(CurrentPage, Text))); print_msg ("Selection copied to Clipboard..."); } break; case PASTE : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { gtk_editable_paste_clipboard (GTK_EDITABLE(FPROPS(CurrentPage, Text))); print_msg ("Text pasted from Clipboard..."); } break; case CLEAR : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { gtk_editable_delete_text (GTK_EDITABLE(FPROPS(CurrentPage, Text)), 0, -1); print_msg ("Buffer cleared..."); } break; case SELECT_ALL : if (OpenedFilesCnt) { gtk_editable_select_region (GTK_EDITABLE(FPROPS(CurrentPage, Text)), 0, -1); print_msg ("All Text selected..."); } break; case COMPLETE : if (OpenedFilesCnt) auto_completion (GTK_TEXT(FPROPS(CurrentPage, Text))); break; case FIND : if (OpenedFilesCnt) search (FALSE); break; case REPLACE : if (OpenedFilesCnt) search (TRUE); break; case LINE : if (OpenedFilesCnt) goto_line (); break; case READONLY : toggle_readonly (); break; case CONVERTER : converter (); break; case COLOR : color_picker (); break; case INSERT_TIME : insert_time (CurrentPage); break; case TO_UPPER : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { change_case (1); print_msg ("Selection converted to upper Case..."); } break; case TO_LOWER : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { change_case (2); print_msg ("Selection converted to Lower Case..."); } break; case CAPITALIZE : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { change_case (3); print_msg ("Selection Capitalized..."); } break; case INVERT_CASE : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { change_case (4); print_msg ("Case inverted..."); } break; case UNIX_DOS : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { conv_unix_to_dos (); } break; case UNIX_MAC : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { conv_unix_to_mac (); } break; case DOS_UNIX : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { conv_dos_to_unix (); } break; case DOS_MAC : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { conv_dos_to_mac (); } break; case MAC_DOS : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { conv_mac_to_dos (); } break; case MAC_UNIX : if ((OpenedFilesCnt) && !FPROPS(CurrentPage, ReadOnly)) { conv_mac_to_unix (); } break; case UNIX_DOS_ALL : convert_all(conv_unix_to_dos); break; case UNIX_MAC_ALL : convert_all(conv_unix_to_mac); break; case DOS_UNIX_ALL : convert_all(conv_dos_to_unix); break; case DOS_MAC_ALL : convert_all(conv_dos_to_mac); break; case MAC_DOS_ALL : convert_all(conv_mac_to_dos); break; case MAC_UNIX_ALL : convert_all(conv_mac_to_unix); break; case FILE_INFO : file_info (CurrentPage); break; case TOOLBAR : if ((!ToolBarToggleDisplay) && (TOOLBAR_DISPLAY)) ToolBarToggleDisplay = TRUE; else { if (TOOLBAR_DISPLAY) { TOOLBAR_DISPLAY = FALSE; hide_toolbar (); print_msg ("Hide Tool Bar..."); } else { TOOLBAR_DISPLAY = TRUE; show_toolbar (); if (!ToolBarToggleDisplay) ToolBarToggleDisplay = TRUE; print_msg ("Display Tool Bar..."); } } break; case MSGBAR : if ((!MsgBarToggleDisplay) && (MSGBAR_DISPLAY)) MsgBarToggleDisplay = TRUE; else { if (MSGBAR_DISPLAY) { MSGBAR_DISPLAY = FALSE; hide_msgbar (); } else { MSGBAR_DISPLAY = TRUE; show_msgbar (); if (!MsgBarToggleDisplay) MsgBarToggleDisplay = TRUE; print_msg ("Display Msg Bar..."); } } break; case WORDWRAP : if ((!ToggleWordwrap) && (TOGGLE_WORDWRAP)) ToggleWordwrap = TRUE; else { if (TOGGLE_WORDWRAP) { TOGGLE_WORDWRAP = FALSE; for (i = 0; i < OpenedFilesCnt; i++) gtk_text_set_word_wrap (GTK_TEXT(FPROPS(CurrentPage, Text)), FALSE); print_msg ("Wordwrap disabled..."); } else { TOGGLE_WORDWRAP = TRUE; for (i = 0; i < OpenedFilesCnt; i++) gtk_text_set_word_wrap (GTK_TEXT(FPROPS(CurrentPage, Text)), TRUE); if (!ToggleWordwrap) ToggleWordwrap = TRUE; print_msg ("Wordwrap enabled..."); } } break; case TAB_POS_TOP : TAB_POSITION = 1; gtk_notebook_set_tab_pos (GTK_NOTEBOOK(MainNotebook), GTK_POS_TOP); break; case TAB_POS_BOTTOM : TAB_POSITION = 2; gtk_notebook_set_tab_pos (GTK_NOTEBOOK(MainNotebook), GTK_POS_BOTTOM); break; case TAB_POS_LEFT : TAB_POSITION = 3; gtk_notebook_set_tab_pos (GTK_NOTEBOOK(MainNotebook), GTK_POS_LEFT); break; case TAB_POS_RIGHT : TAB_POSITION = 4; gtk_notebook_set_tab_pos (GTK_NOTEBOOK(MainNotebook), GTK_POS_RIGHT); break; case SCROLLBAR_POS_LEFT : SCROLLBAR_POSITION = 1; for (i = 0; i < OpenedFilesCnt; i++) gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW (gtk_notebook_get_nth_page (GTK_NOTEBOOK(MainNotebook), i)), GTK_CORNER_TOP_RIGHT); break; case SCROLLBAR_POS_RIGHT : SCROLLBAR_POSITION = 2; for (i = 0; i < OpenedFilesCnt; i++) gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW (gtk_notebook_get_nth_page (GTK_NOTEBOOK(MainNotebook), i)), GTK_CORNER_TOP_LEFT); break; case PREFS : display_prefs (&Settings); break; case HELP : print_msg ("No help available yet..."); break; case ABOUT : about (); break; } (void)Widget; /* avoid the "unused parameter" warning */ }