/**
 * gva_audit_init:
 *
 * Initializes the ROM audit window.
 *
 * This function should be called once when the application starts.
 **/
void
gva_audit_init (void)
{
    GtkTreeViewColumn *column;
    GtkTreeView *view;

    view = GTK_TREE_VIEW (GVA_WIDGET_AUDIT_TREE_VIEW);
    column = gva_columns_new_from_id (GVA_GAME_STORE_COLUMN_DESCRIPTION);
    gtk_tree_view_append_column (view, column);

    gtk_action_connect_proxy (
        GVA_ACTION_SAVE_ERRORS,
        GVA_WIDGET_AUDIT_SAVE_BUTTON);
}
Exemple #2
0
GtkWidget * yui_scudsp_new(YuiWindow * y) {
  GtkWidget * dialog;
  GClosure *closureF7;
  GtkAccelGroup *accelGroup;
  const scucodebreakpoint_struct *cbp;
  gint i;
  yui = y;

  if ( yui_scudsp ) return GTK_WIDGET(yui_scudsp);
  
  dialog = GTK_WIDGET(g_object_new(yui_scudsp_get_type(), NULL));
  yui_scudsp = YUI_SCUDSP(dialog);

  if (!( yui->state & YUI_IS_INIT )) {
    yui_window_run(yui);
    yui_window_pause(yui);
  }

  ScuDspSetBreakpointCallBack(&yui_scudsp_breakpoint_handler);

  for (i = 0; i < 23 ; i++) {
    
    GtkTreeIter iter;
    gtk_list_store_append( GTK_LIST_STORE( yui_scudsp->regListStore ), &iter );
  }	
  
  cbp = ScuDspGetBreakpointList();
  
  for (i = 0; i < MAX_BREAKPOINTS; i++) {
    
    GtkTreeIter iter;
    yui_scudsp->cbp[i] = cbp[i].addr;
    gtk_list_store_append( GTK_LIST_STORE( yui_scudsp->bpListStore ), &iter );
    if (cbp[i].addr != 0xFFFFFFFF) {
      
      gchar tempstr[20];
      sprintf(tempstr, "%08X", (int)cbp[i].addr);
      gtk_list_store_set( GTK_LIST_STORE( yui_scudsp->bpListStore ), &iter, 0, tempstr, -1 );
    } else gtk_list_store_set( GTK_LIST_STORE( yui_scudsp->bpListStore ), &iter, 0, "<empty>", -1 );
  } 

  {
    GtkWidget * but2, * but3, * but4;
    
    yui_scudsp->buttonStep = gtk_button_new_with_label( "Step [F7]" );
    gtk_box_pack_start( GTK_BOX( yui_scudsp->hbox ), yui_scudsp->buttonStep, FALSE, FALSE, 2 );
    g_signal_connect( yui_scudsp->buttonStep, "clicked", G_CALLBACK(yui_scudsp_step), yui_scudsp );
    
    but2 = gtk_button_new();
    gtk_action_connect_proxy(gtk_action_group_get_action(yui->action_group, "run"), but2);
    gtk_box_pack_start(GTK_BOX(yui_scudsp->hbox), but2, FALSE, FALSE, 2);
    
    but3 = gtk_button_new();
    gtk_action_connect_proxy(gtk_action_group_get_action(yui->action_group, "pause"), but3);
    gtk_box_pack_start(GTK_BOX(yui_scudsp->hbox), but3, FALSE, FALSE, 2);
    
    but4 = gtk_button_new_from_stock("gtk-close");
    g_signal_connect_swapped(but4, "clicked", G_CALLBACK(yui_scudsp_destroy), dialog);
    gtk_box_pack_start(GTK_BOX(yui_scudsp->hbox), but4, FALSE, FALSE, 2);
  }
  yui_scudsp->paused_handler = g_signal_connect_swapped(yui, "paused", G_CALLBACK(yui_scudsp_update), yui_scudsp);
  yui_scudsp->running_handler = g_signal_connect_swapped(yui, "running", G_CALLBACK(yui_scudsp_clear), yui_scudsp);
  accelGroup = gtk_accel_group_new ();
  closureF7 = g_cclosure_new (G_CALLBACK (yui_scudsp_step), yui_scudsp, NULL);
  gtk_accel_group_connect( accelGroup, GDK_F7, 0, 0, closureF7 );
  gtk_window_add_accel_group( GTK_WINDOW( dialog ), accelGroup );
  
  yui_scudsp_update(yui_scudsp);
  if ( yui->state & YUI_IS_RUNNING ) yui_scudsp_clear(yui_scudsp);
  
  gtk_widget_show_all(GTK_WIDGET(yui_scudsp));
  
  return dialog;
}
/**
 * gva_main_init:
 *
 * Initializes the main window.
 *
 * This function should be called once when the application starts.
 **/
void
gva_main_init (void)
{
        gchar *text;

        gva_tree_view_init ();

        gtk_box_pack_start (
                GTK_BOX (GVA_WIDGET_MAIN_VBOX),
                gva_ui_get_managed_widget ("/main-menu"),
                FALSE, FALSE, 0);

        gtk_action_connect_proxy (
                GVA_ACTION_VIEW_AVAILABLE,
                GVA_WIDGET_MAIN_VIEW_BUTTON_0);

        gtk_action_connect_proxy (
                GVA_ACTION_VIEW_FAVORITES,
                GVA_WIDGET_MAIN_VIEW_BUTTON_1);

        gtk_action_connect_proxy (
                GVA_ACTION_VIEW_RESULTS,
                GVA_WIDGET_MAIN_VIEW_BUTTON_2);

        gtk_action_connect_proxy (
                GVA_ACTION_PROPERTIES,
                GVA_WIDGET_MAIN_PROPERTIES_BUTTON);

        gtk_action_connect_proxy (
                GVA_ACTION_START,
                GVA_WIDGET_MAIN_START_GAME_BUTTON);

        gtk_widget_set_sensitive (
                GVA_WIDGET_MAIN_MUTE_BUTTON,
                gva_mame_supports_sound ());

        gconf_bridge_bind_property (
                gconf_bridge_get (), GVA_GCONF_SOUND_MUTED,
                G_OBJECT (GVA_WIDGET_MAIN_MUTE_BUTTON), "muted");

        gconf_bridge_bind_window (
                gconf_bridge_get (), GVA_GCONF_WINDOW_PREFIX,
                GTK_WINDOW (GVA_WIDGET_MAIN_WINDOW), TRUE, FALSE);

        /* Initialize the search entry. */
        text = gva_main_get_last_search_text ();
        gtk_entry_set_text (GTK_ENTRY (GVA_WIDGET_MAIN_SEARCH_ENTRY), text);
        g_free (text);

#if !GTK_CHECK_VERSION(2,14,0) && !defined WITH_GNOME
        /* Requires that we link against libgnome. */
        gtk_action_set_sensitive (GVA_ACTION_CONTENTS, FALSE);
#endif

        gtk_action_set_sensitive (GVA_ACTION_PROPERTIES, FALSE);
        gtk_action_set_sensitive (GVA_ACTION_RECORD, FALSE);
        gtk_action_set_sensitive (GVA_ACTION_SEARCH, FALSE);
        gtk_action_set_sensitive (GVA_ACTION_SHOW_CLONES, FALSE);
        gtk_action_set_sensitive (GVA_ACTION_START, FALSE);
        gtk_action_set_sensitive (GVA_ACTION_VIEW_AVAILABLE, FALSE);
        gtk_action_set_sensitive (GVA_ACTION_VIEW_FAVORITES, FALSE);
        gtk_action_set_sensitive (GVA_ACTION_VIEW_RESULTS, FALSE);

        gtk_action_set_visible (GVA_ACTION_INSERT_FAVORITE, FALSE);
        gtk_action_set_visible (GVA_ACTION_REMOVE_FAVORITE, FALSE);

        gtk_window_present (GTK_WINDOW (GVA_WIDGET_MAIN_WINDOW));
}
Exemple #4
0
GtkWidget *
build_root_selection_frame(ASFileBrowserRootSelFrame *data, GtkWidget *dirlist)
{
	GtkTable *table;
	GtkWidget *btn ;
	GtkActionGroup *action_group ;
	GtkWidget *path_combo ;
	GtkWidget *path_entry = NULL;
	GtkWidget* file_chooser_btn ;

#define ROOT_SELECTION_ENTRIES_NUM	6
	static GtkRadioActionEntry root_sel_entries[ROOT_SELECTION_ENTRIES_NUM] = {
		{"root_PrivateAfterStep", NULL, "Private AfterStep", NULL, 
			"Private directory conmtaining AfterStep files. Typically ~/.afterstep", 
			root_PrivateAfterStep},	  
		{"root_SharedAfterStep", NULL, "Shared AfterStep" , NULL, 
			"System-wide shared directory conmtaining AfterStep files. Typically /usr/local/share/afterstep", 
			root_SharedAfterStep},	
		{"root_Home", NULL, "Home"             , NULL, 
			"Private Home directory", 
			root_Home},	
		{"root_UsrShare", NULL, "/usr/share"       , NULL, 
			"System-wide shared files directory /usr/share", 
			root_UsrShare},	 
		{"root_UsrLocalShare", NULL, "/usr/local/share" , NULL, 
			"System-wide shared files directory /usr/local/share", 	
			root_UsrLocalShare},	  
		{"root_Other", NULL, "Other : "         , NULL, 
			"Custom location in the filesystem tree", 				
			root_Other},	  
	} ;
	int root_sel_cells[ROOT_SELECTION_ENTRIES_NUM][4] = 
	{	{0, 1, 0, 1},	
	 	{1, 2, 0, 1},
	 	{2, 3, 0, 1},
	 	{3, 4, 0, 1},
	 	{4, 5, 0, 1},
	 	{0, 1, 1, 2}
	};	 
	int i ;
	GtkWidget *frame = gtk_frame_new( NULL );
	GtkWidget *hbox = gtk_hbox_new( FALSE, 0 );
	GtkWidget *label = gtk_label_new( "Select directory tree to browse : ");
	GtkWidget *checkbox = gtk_check_button_new_with_label( "( hide and show entire filesystem )" );


	gtk_box_pack_start (GTK_BOX (hbox), label, TRUE, TRUE, 5);
	gtk_box_pack_end (GTK_BOX (hbox), checkbox, TRUE, TRUE, 5);
	gtk_widget_show_all (hbox);
	gtk_widget_show (hbox);
	gtk_frame_set_label_widget( GTK_FRAME(frame), hbox );

	table = GTK_TABLE(gtk_table_new( 5, 2, FALSE ));
	g_signal_connect ((gpointer) checkbox, "clicked", G_CALLBACK (on_hide_contents_toggle), data);
	
	gtk_container_add (GTK_CONTAINER (frame), GTK_WIDGET(table));
	gtk_container_set_border_width( GTK_CONTAINER (frame), 5 );
	gtk_container_set_border_width( GTK_CONTAINER (table), 5 );
	gtk_table_set_row_spacings( table, 5 );
	gtk_table_set_col_spacings( table, 5 );

	action_group = gtk_action_group_new( "RootSelection" );
	gtk_action_group_add_radio_actions( action_group, root_sel_entries, ROOT_SELECTION_ENTRIES_NUM, 
										root_PrivateAfterStep, G_CALLBACK(root_selection_changed), data );

	for( i = 0 ; i  < ROOT_SELECTION_ENTRIES_NUM ; ++i ) 
	{	
		btn = gtk_toggle_button_new_with_label(root_sel_entries[i].name);
		gtk_table_attach_defaults (table, btn,  root_sel_cells[i][0], root_sel_cells[i][1], 
												root_sel_cells[i][2], root_sel_cells[i][3]);	
		gtk_action_connect_proxy(gtk_action_group_get_action(action_group,root_sel_entries[i].name), btn );
	}

	path_combo = gtk_combo_box_entry_new_text(); 
	colorize_gtk_edit(path_combo);

	file_chooser_btn = gtk_button_new_with_label( "Browse" );
	colorize_gtk_edit(path_combo);
	hbox = gtk_hbox_new( FALSE, 0 );
	gtk_box_pack_start (GTK_BOX (hbox), path_combo, TRUE, TRUE, 0);
	gtk_box_pack_end (GTK_BOX (hbox), file_chooser_btn, FALSE, FALSE, 0);
	gtk_widget_show_all (hbox);

	gtk_table_attach_defaults (table, hbox,  1, 5, 1, 2 );
	
	if( GTK_IS_CONTAINER(path_combo) )
		gtk_container_forall( GTK_CONTAINER(path_combo), find_combobox_entry, &path_entry );
	/* if above succeeded then path_entry should be not NULL here : */
	/* TODO : insert proper change handlers and data pointers here : */
	if( path_entry ) 
		g_signal_connect ( G_OBJECT (path_entry), "activate",
		      			   G_CALLBACK (NULL), (gpointer) NULL);
	g_signal_connect (G_OBJECT(path_combo), "changed",
			  			G_CALLBACK (NULL), (gpointer) NULL);

	gtk_widget_show_all (GTK_WIDGET(table));
	gtk_widget_show (GTK_WIDGET(table));
	gtk_widget_set_size_request ( frame, -1, -1);
	colorize_gtk_widget( frame, get_colorschemed_style_normal() );

	data->table 		   = GTK_WIDGET(table) ;
	data->action_group 	   = action_group ;
	data->path_combo       = path_combo ;
	data->path_entry       = path_entry ;
	data->file_chooser_btn = file_chooser_btn ;
	data->target_dirlist   = dirlist ;

	return frame;
}	   
int
get_actions_page (ThunarxProviderFactory* f,
		  GList *flist,
		  gboolean dirs_as_files,
		  GtkWindow *win,
		  const char *class_name,
		  GtkWidget **page,
		  char *title,
		  int tlen)
{
  GList *ps, *lp, *files, *dirs, *fas, *das, *as;
  GtkWidget *vbox;

  files = NULL;
  dirs = NULL;

  if (! dirs_as_files)
    {
      for (flist; flist != NULL; flist = flist->next)
	{
	  if (thunarx_file_info_is_directory(THUNARX_FILE_INFO(flist->data)))
	    {
	      dirs = g_list_append(dirs, flist->data);
	    }
	  else
	    {
	      files = g_list_append(files, flist->data);
	    }
	}
    }
  else
    {
      files = flist;
    }

  ps = thunarx_provider_factory_list_providers(f, THUNARX_TYPE_MENU_PROVIDER);

  snprintf(title, tlen, "Choose an action for the %i selected object(s)\n",
	   g_list_length(files) + g_list_length(dirs));
  
  *page = gtk_frame_new (title);
  gtk_container_set_border_width (GTK_CONTAINER(*page), 10);
  vbox = gtk_vbox_new(TRUE, 10);
  gtk_container_set_border_width (GTK_CONTAINER(vbox), 10);
  gtk_container_add(GTK_CONTAINER(*page), GTK_WIDGET(vbox));

  fas = NULL;
  das = NULL;
  for (lp = ps; lp != NULL; lp = lp->next)
    {
      GList *dp, *as;
      if (strncmp(class_name, G_OBJECT_TYPE_NAME(lp->data), 256) == 0) {
	as = thunarx_menu_provider_get_file_actions(lp->data,
						    GTK_WIDGET(win),
						    files);
	fas = g_list_merge(fas, as);
	for (dp = dirs; dp != NULL; dp = dp->next)
	  {
	    GList *as;
	    as = thunarx_menu_provider_get_folder_actions(lp->data,
							  GTK_WIDGET(win),
							  dp->data);
	    das = g_list_merge(das, as);
	    g_list_foreach (as, (GFunc) g_object_unref, NULL);
	    g_list_free (as);
	  }
	g_list_foreach (as, (GFunc) g_object_unref, NULL);
	g_list_free (as);
      }
    }

  g_list_foreach (ps, (GFunc) g_object_unref, NULL);
  g_list_free (ps);

  fas = g_list_merge(fas, das);
  g_list_foreach (das, (GFunc) g_object_unref, NULL);
  g_list_free (das);
  
  if (g_list_length(fas) > 0)
    {
      GList *ap;

      for (ap = fas; ap != NULL; ap = ap->next)
	{
	  GtkWidget *b;

	  b = gtk_button_new ();
	  gtk_action_connect_proxy (GTK_ACTION(ap->data), b);
	  gtk_container_add(GTK_CONTAINER(vbox), GTK_WIDGET(b));
	  g_signal_connect_object (G_OBJECT(b),
				   "clicked",
				   G_CALLBACK(gtk_widget_destroy),
				   win,
				   G_CONNECT_AFTER | G_CONNECT_SWAPPED);
	}
      return 1;
    }
  else
    {
      gtk_container_add(GTK_CONTAINER(vbox), gtk_label_new ("No actions available"));
      return 1;
    }
}
Exemple #6
0
static VALUE
rg_connect_proxy(VALUE self, VALUE proxy)
{
    gtk_action_connect_proxy(_SELF(self), RVAL2WIDGET(proxy));
    return self;
}