예제 #1
0
// 构造GUI函数。
// 输入:void
// 返回值:void
void construct_GUI()
{
    background = gdk_pixbuf_new_from_file("res/background.jpg",NULL);
    A_pic = gdk_pixbuf_new_from_file("res/A.png",NULL);
    B_pic = gdk_pixbuf_new_from_file("res/B.png",NULL);

    main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_widget_set_size_request(main_window,627,570);
    gtk_window_set_resizable(GTK_WINDOW(main_window),FALSE);
    gtk_window_set_title(GTK_WINDOW(main_window),("Tic Tac toe"));
    g_signal_connect(G_OBJECT(main_window),"destroy",G_CALLBACK(gtk_main_quit),NULL);

    GtkWidget * layout = gtk_layout_new(NULL,NULL);
    gtk_container_add(GTK_CONTAINER(main_window),layout);

    GtkWidget * menubar = gtk_menu_bar_new();
    GtkWidget * menu1 = gtk_menu_new();

    GtkWidget * option = gtk_menu_item_new_with_mnemonic("option");
    GtkWidget * player = gtk_image_menu_item_new_with_label("player first");
    GtkWidget * computer = gtk_image_menu_item_new_with_label("computer first");
    GtkWidget * sep = gtk_separator_menu_item_new();
    g_signal_connect(G_OBJECT(player),"activate",G_CALLBACK(player_first),NULL);
    g_signal_connect(G_OBJECT(computer),"activate",G_CALLBACK(computer_first),NULL);

    GtkWidget * quit = gtk_image_menu_item_new_with_label("quit");
    g_signal_connect(G_OBJECT(quit),"activate",G_CALLBACK(gtk_main_quit),NULL);

    GtkWidget * menu2 = gtk_menu_new();
    GtkWidget * help = gtk_menu_item_new_with_mnemonic("help");
    GtkWidget * about = gtk_image_menu_item_new_with_label("about..");
    g_signal_connect(G_OBJECT(about),"activate",G_CALLBACK(about_pressed),NULL);

    gtk_menu_item_set_submenu(GTK_MENU_ITEM(option),menu1);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu1),player);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu1),computer);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu1),sep);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu1),quit);

    gtk_menu_item_set_submenu(GTK_MENU_ITEM(help),menu2);
    gtk_menu_shell_append(GTK_MENU_SHELL(menu2),about);

    gtk_menu_shell_append(GTK_MENU_SHELL(menubar),option);
    gtk_menu_shell_append(GTK_MENU_SHELL(menubar),help);

    gtk_layout_put(GTK_LAYOUT(layout),menubar,0,0);
    gtk_widget_set_size_request(menubar,627,20);

    draw_window = gtk_drawing_area_new();
    gtk_layout_put(GTK_LAYOUT(layout),draw_window,0,20);
    gtk_widget_set_size_request(draw_window,627,570);
    g_signal_connect(draw_window,"expose-event",G_CALLBACK(window_drawing),NULL);

    gtk_widget_set_events(draw_window,gtk_widget_get_events(draw_window)|GDK_BUTTON_PRESS_MASK);
    g_signal_connect(G_OBJECT(draw_window),"button-press-event",G_CALLBACK(when_key_pressed),NULL);

    gtk_widget_show_all(main_window);
}
예제 #2
0
파일: main.c 프로젝트: poserg/fifteen
int main (int argc, char *argv[]) 
{
	GtkWidget *window;
	GtkWidget *layout;
	GtkWidget *but;
	int i,j, n;
	int x,y;
	char text [256];
	
	for (i = 0; i < 16; i++) pos[i]=0;
	
	gtk_init (&argc, &argv);

	window = gtk_window_new ( GTK_WINDOW_TOPLEVEL );
	gtk_window_set_title (GTK_WINDOW (window),"Fifteen");
	g_signal_connect (G_OBJECT (window), "destroy", G_CALLBACK (gtk_main_quit), NULL);
	gtk_window_set_position (GTK_WINDOW (window), GTK_WIN_POS_CENTER_ALWAYS);
	gtk_window_set_resizable (GTK_WINDOW (window), FALSE);
	gtk_widget_set_size_request (window, 120,120);
	
	layout = gtk_layout_new (NULL, NULL);
	//gtk_layout_set_size (GTK_LAYOUT (layout), 120, 	120);
	gtk_container_add (GTK_CONTAINER (window), layout);
	gtk_widget_show (layout);

	for (i = 0; i < 4; i++)
	{
		for (j = 0; j < 4; j++)
		{
			n = gen_pos(4*i+j+1);
			x = j*25+10;
			y = i*25+10;
			if (n == 16)
			{
				empty_but = gtk_button_new ();
				gtk_layout_put (GTK_LAYOUT (layout), empty_but, x, y);
			} else {
				sprintf (text, "%d", n);
				but = gtk_button_new_with_label (text);
				gtk_widget_set_size_request (but, 25, 25);
			
				g_signal_connect (G_OBJECT (but), "pressed", G_CALLBACK (but_click), NULL);
				gtk_layout_put (GTK_LAYOUT (layout), but, x, y);
				gtk_widget_show (but);
			}
		}
	}

	gtk_widget_show (window); 
	gtk_main ();
	return 0;
}
예제 #3
0
void gtk_packing()
{
	int i;
	gtk_container_add(GTK_CONTAINER(window),layout);
	gtk_layout_put(GTK_LAYOUT(layout),bg,0,0);
	gtk_layout_put(GTK_LAYOUT(layout),power,10,0);
	gtk_layout_put(GTK_LAYOUT(layout),vbox,40,20);
	
	gtk_layout_put(GTK_LAYOUT(layout),close_event,180,0);
	for(i=0;i<2;i++)
	{
		gtk_box_pack_start(GTK_BOX(vbox),label[i],1,1,0);
	}
	gtk_container_add(GTK_CONTAINER(close_event),close_img);
}
예제 #4
0
void cb_open (GtkWidget *p_widget)
{
	GtkWidget *p_dialog;

	p_dialog = gtk_file_chooser_dialog_new ("Image selection", NULL,
			GTK_FILE_CHOOSER_ACTION_OPEN,
			("_Cancel"), GTK_RESPONSE_CANCEL,
			("_Open"), GTK_RESPONSE_ACCEPT,
			NULL);
	if (gtk_dialog_run (GTK_DIALOG (p_dialog)) == GTK_RESPONSE_ACCEPT)
	{

		//file_name = gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (p_dialog));
		file_name = g_file_get_path(gtk_file_chooser_get_file(GTK_FILE_CHOOSER(p_dialog)));
		if(pImage)
			gtk_widget_destroy(pImage);

		GdkPixbuf *pBuf = gdk_pixbuf_new_from_file_at_scale (file_name,500,330,TRUE,NULL);
		pImage = gtk_image_new_from_pixbuf(pBuf);
		g_object_unref (pBuf);

		//permet de centrer l'image
		GdkPixbuf *pBufFcd = gtk_image_get_pixbuf (GTK_IMAGE(pImage));
		int w = gdk_pixbuf_get_width(pBufFcd);
                int h = gdk_pixbuf_get_height(pBufFcd);

		gtk_layout_put(GTK_LAYOUT(layout), pImage, 273-(w/2), 196-(h/2));  
		gtk_widget_show_all(pImage);
		//g_free(file_name), file_name=NULL;
	}
	gtk_widget_destroy (p_dialog);

	(void)p_widget;
}
예제 #5
0
/* Widget creators */
extern int NLDT_gtk_button_new(struct lua_State *L)
{
	/*
		LUA Use:
			gtk_button_new("Some Text",Width, Height)
	*/
	if(lua_gettop(L)!=5)
	{
		lua_pushstring(L,"ERROR gtk_button_new usage \"Label\", Xpos, Ypos, Width, Height\n");
		lua_error(L); 
	}
	
	char *label = (char*)lua_tostring(L,1);
	
	int x,y,w, h;
	x = luaL_checkint(L,2);
	y = luaL_checkint(L,3);
	w = luaL_checkint(L,4);
	h = luaL_checkint(L,5);
	
	GtkWidget *button = gtk_button_new_with_label(label);
	gtk_widget_set_size_request(button,w,h);
	
	nldt_gizmo_node *owner = nldt_gizmo_lookup(L);
	if(owner==NULL)
	{
		fprintf(stderr,"ERROR: Attempted to draw before initialisation (Offender: gtk.button_new)\n");
		return 0;
	}
	gtk_layout_put(GTK_LAYOUT(owner->gizmo_space),button,x,y);
	gtk_widget_show(button);
	lua_pushinteger(L,(int)button);
	
	return 1;
}
예제 #6
0
extern int NLDT_gtk_button_new_from_image(struct lua_State *L)
{
	/*
		LUA Use:
			gtk_button_new("Some Text",Width, Height)
	*/
	if(lua_gettop(L)!=3)
	{
		lua_pushstring(L,"ERROR gtk_button_new_from_image usage \"filename\", Width, Height\n");
		lua_error(L); 
	}
	
	char *file_name = (char*)lua_tostring(L,1);
	
	int w, h;
	w = luaL_checkint(L,2);
	h = luaL_checkint(L,3);
	
	GtkWidget *button = gtk_button_new();
	gtk_container_add(GTK_CONTAINER(button),gtk_image_new_from_file(file_name));
	gtk_widget_set_size_request(button,w,h);
	
	nldt_gizmo_node *owner = nldt_gizmo_lookup(L);
	if(owner==NULL)
	{
		fprintf(stderr,"ERROR: Attempted to draw before initialisation (Offender: gtk.button_new_from_image)\n");
		return 0;
	}
	gtk_layout_put(GTK_LAYOUT(owner->gizmo_space),button,10,10);
	gtk_widget_show(button);
	lua_pushinteger(L,(int)button);
	
	return 1;
}
예제 #7
0
extern int NLDT_gtk_label_new(struct lua_State *L)
{
	/*
		LUA Use:
			gtk_label_new("Some Text")
	*/
	if(lua_gettop(L)!=1)
	{
		lua_pushstring(L,"ERROR gtk_label_new usage \"Label\"\n");
		lua_error(L);
	}
	
	char *label_text = (char*)lua_tostring(L,1);
	
	GtkWidget *label = gtk_label_new(label_text);
	
	nldt_gizmo_node *owner = nldt_gizmo_lookup(L);
	if(owner==NULL)
	{
		fprintf(stderr,"ERROR: Attempted to draw before initialisation (Offender: gtk.label_new)\n");
		return 0;
	}
	gtk_layout_put(GTK_LAYOUT(owner->gizmo_space),label,10,10);
	gtk_widget_show(label);
	lua_pushinteger(L,(int)label);
	return 1;
}
예제 #8
0
파일: interface.c 프로젝트: azzbcc/Tfn2k
/*
 * 插入框初始化
 */
GtkWidget *CreateInsertWindow() {

	// 控件初始化
	childInsertWindow.layout = gtk_layout_new(NULL, NULL);
	childInsertWindow.window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	childInsertWindow.label_puppet = gtk_label_new("新增代理主机地址:");
	childInsertWindow.entry_pupper = gtk_entry_new();
	childInsertWindow.button_insert = gtk_button_new_with_label("添加");
	childInsertWindow.button_cancel = gtk_button_new_with_label("取消");

	// 设置控件大小
	gtk_widget_set_size_request(childInsertWindow.label_puppet, 120, 30);
	gtk_widget_set_size_request(childInsertWindow.entry_pupper, 150, 30);
	gtk_widget_set_size_request(childInsertWindow.button_insert, 80, 40);
	gtk_widget_set_size_request(childInsertWindow.button_cancel, 80, 40);

	//将控件添加到界面
	gtk_container_add((GtkContainer *) childInsertWindow.window,
			childInsertWindow.layout);
	gtk_layout_put((GtkLayout *) childInsertWindow.layout,
			childInsertWindow.label_puppet, 10, 20);
	gtk_layout_put((GtkLayout *) childInsertWindow.layout,
			childInsertWindow.entry_pupper, 140, 20);
	gtk_layout_put((GtkLayout *) childInsertWindow.layout,
			childInsertWindow.button_insert, 30, 60);
	gtk_layout_put((GtkLayout *) childInsertWindow.layout,
			childInsertWindow.button_cancel, 180, 60);

	gtk_window_set_title(GTK_WINDOW(childInsertWindow.window), "添加被控端主机");
	gtk_window_set_position(GTK_WINDOW(childInsertWindow.window),
			GTK_WIN_POS_CENTER_ALWAYS);
	gtk_widget_set_usize(GTK_WIDGET(childInsertWindow.window), 320, 120);

	// 窗口关闭时触发 gtk_widget_destroy 函数
	g_signal_connect(G_OBJECT(childInsertWindow.window), "delete_event",
			G_CALLBACK(gtk_widget_destroy), childInsertWindow.window);
	// 点击取消时触发 gtk_widget_destroy 函数
	g_signal_connect(G_OBJECT(childInsertWindow.button_cancel), "clicked",
			G_CALLBACK(tfn_insert_cancel), childInsertWindow.window);
	// 点击取消时触发 gtk_widget_destroy 函数
	g_signal_connect(G_OBJECT(childInsertWindow.button_insert), "clicked",
			G_CALLBACK(tfn_insert_insert), childInsertWindow.window);

	return childInsertWindow.window;
}
예제 #9
0
void gtk_hexgrid_put(GtkHexGrid* hexgrid, GtkWidget* child, int x, int y)
{
	int real_x = P(hexgrid)->width / 2 - P(hexgrid)->button_size +
		     3 * x * P(hexgrid)->button_size / 2;
	int real_y = abs(x) * (P(hexgrid)->button_size + 1) +
		     2 * y * P(hexgrid)->button_size;

	gtk_widget_set_size_request(child, 2 * P(hexgrid)->button_size,
				    P(hexgrid)->button_size * 2);
	gtk_layout_put(GTK_LAYOUT(hexgrid), child, real_x, real_y);
}
예제 #10
0
파일: layout.c 프로젝트: amery/clip-itk
int
clip_GTK_LAYOUTPUT(ClipMachine * cm)
{
	C_widget *ccon = _fetch_cw_arg(cm);
	C_widget *cwid = _fetch_cwidget(cm,_clip_spar(cm,2));
	gint x = _clip_parni(cm,3);
	gint y = _clip_parni(cm,4);
	CHECKARG2(2,MAP_t,NUMERIC_t);
	CHECKOPT(3,NUMERIC_t); CHECKOPT(4,NUMERIC_t);
	CHECKCWID(ccon,GTK_IS_LAYOUT); CHECKCWID(cwid,GTK_IS_WIDGET);
	if (_clip_parinfo(cm,3) == UNDEF_t) x = cwid->widget->allocation.x;
	if (_clip_parinfo(cm,4) == UNDEF_t) y = cwid->widget->allocation.y;
	gtk_layout_put(GTK_LAYOUT(ccon->widget), cwid->widget, x,y);

	return 0;
err:
	return 1;
}
예제 #11
0
void populate(GtkLayout * l) {
   
	for(int i = COLUMNS; i >= 0; i--) {
        for(int x = ROWS; x >= 0; x--) {
		    GtkWidget * lbl = gtk_label_new(" ");
	        	gtk_widget_set_size_request(lbl, 25, 25);
		    gtk_layout_put (l,
			    lbl,
			    i * 50,
			    x * 50);
		    int bx = (x - ROWS) * -1;
		    int bi = (i - COLUMNS) * -1;
		   // printf("%d - %d \r\n", bi, bx);
		    buff2[bi][bx] = lbl;
        }
	}

}
예제 #12
0
static void
draw (HTMLObject *o,
      HTMLPainter *p,
      gint x,
      gint y,
      gint width,
      gint height,
      gint tx,
      gint ty)
{
	HTMLEmbedded *element = HTML_EMBEDDED (o);
	gint new_x, new_y;

	d (printf ("draw embedded %p\n", element));
	if (!element->widget)
		return;

	if (element->parent) {
		GtkWidget *parent;
		new_x = o->x + tx;
		new_y = o->y + ty - o->ascent;

		if ((parent = gtk_widget_get_parent (element->widget))) {
			if (new_x != element->abs_x || new_y != element->abs_y) {
				d (printf ("element: %p moveto: %d,%d shown: %d\n", element, new_x, new_y, GTK_WIDGET_VISIBLE (element->widget)));
				gtk_layout_move (GTK_LAYOUT (parent), element->widget, new_x, new_y);
			} else if (!GTK_HTML (parent)->engine->expose)
				gtk_widget_queue_draw (element->widget);
		}

		element->abs_x = new_x;
		element->abs_y = new_y;

		if (!parent) {
			d (printf ("element: %p put: %d,%d shown: %d\n", element, new_x, new_y, GTK_WIDGET_VISIBLE (element->widget)));
			gtk_layout_put (GTK_LAYOUT (element->parent), element->widget, new_x, new_y);
		}
	}

	d (printf ("draw embedded %p - call painter tx %d ty %d\n", element, tx, ty));
	html_painter_draw_embedded (p, element, tx, ty);
}
예제 #13
0
GtkComboBox *get_SelectGraph(void)
{
    GtkComboBox *cb;
    if (!cbSelectGraph) {

	cb = (GtkComboBox *) gtk_combo_box_new_text();
	gtk_widget_show((GtkWidget *) cb);
	gtk_box_pack_start(GTK_BOX(gladewidget), (GtkWidget *) cb, FALSE,
			   FALSE, 0);


	gtk_layout_put((GtkLayout *) gladewidget, (GtkWidget *) cb, 780,
		       3);
	//signal


	return cb;
    } else
	return cbSelectGraph;
}
예제 #14
0
 void drawbutton(GtkWidget *layout,gchar *tname,gint x,gint y,gint type,MrpProject *project)
 {
	 GtkWidget *button;

	 gboolean sensitive;
	 sensitive = type;
	 gchar *buttonname = tname;

	 button = gtk_button_new_with_label (buttonname);
	 gtk_layout_put(layout,button,x,y);
	 //gtk_widget_set_size_request(button, WIDTH12,HIGH12);
	 gtk_widget_set_size_request(button, 95,50);
	 gtk_widget_set_name (button,tname);


	  font1 = pango_font_description_from_string("Sans");//"Sans"字体名
	  pango_font_description_set_size(font1, fontSize * PANGO_SCALE);//设置字体大小
	  labelChild = gtk_bin_get_child(GTK_BIN( button));//取出GtkButton里的label
	  pango_font_description_set_weight(font1,700);
	  gtk_widget_modify_font(GTK_WIDGET(labelChild), font1);//设置label的字体, 这样这个GtkButton上面显示的字体就变了


	 gtk_widget_set_sensitive(button,sensitive);

	 if(sensitive)
	 {
		 GdkColor color1;
		 color1.red = 0;
		 color1.green = 50100;
		 color1.blue = 50000;
		 gtk_widget_modify_bg(button, GTK_STATE_NORMAL, &color1);
	 }

	 buttons = g_list_prepend(buttons,button);

	 gtk_widget_show (button);
	 g_signal_connect (G_OBJECT (button), "clicked",
	 	           G_CALLBACK (reDrawd),
	 	           project);
 }
예제 #15
0
파일: gui.c 프로젝트: ekoontz/graphviz
GtkComboBox *get_SelectGraph()
{
    GtkComboBox *cb;
    if (!cbSelectGraph) {

	cb = (GtkComboBox *) gtk_combo_box_new_text();
	gtk_widget_show((GtkWidget *) cb);
	gladewidget = glade_xml_get_widget(xml, "layout6");
	gtk_box_pack_start(GTK_BOX(gladewidget), (GtkWidget *) cb, FALSE,
			   FALSE, 0);


	gtk_layout_put((GtkLayout *) gladewidget, (GtkWidget *) cb, 780,
		       3);
	//signal
	g_signal_connect((gpointer) cb, "changed",
			 G_CALLBACK(graph_select_change), NULL);


	return cb;
    } else
	return cbSelectGraph;
}
예제 #16
0
 void
 redrawGertToPert(GtkWidget *widget,gpointer data)
 {
	 GtkWidget *layout;

	 GtkWidget *scrollwindows;
	 layout = gtk_widget_get_parent(widget);
	 g_printf("redraw the pert node,name is %s\n",data);
	 //gtk_widget_hide(layout);
	 scrollwindows = gtk_widget_get_parent(layout);
	 gtk_container_remove(scrollwindows,layout);

	 GtkWidget *newlayout;
	 GtkWidget *button;
	 newlayout = gtk_layout_new(NULL,NULL);

	 button=gtk_button_new_with_label("改变主窗口label文字");
	 gtk_layout_put(newlayout, button, 497, 250);
	 gtk_widget_set_size_request(button, 80, 65);
	 gtk_container_add(GTK_CONTAINER(scrollwindows), newlayout);
	 gtk_widget_show(newlayout);
	 gtk_widget_show_all(scrollwindows);
 }
예제 #17
0
int	handle_message_box(GladeXML* g_glade_xml, GtkLayout* screen, int init)
{
  char*	message = get_string();

  if (init)
    {
      g_message_window = glade_xml_get_widget(g_glade_xml,
					      "message_window");
      g_assert(g_message_window);
      set_nil_draw_focus(g_message_window);
      if(screen) gtk_layout_put(screen, g_message_window, 0, 0);
      g_message_label = glade_xml_get_widget(g_glade_xml,
					     "message_label");
      g_assert(g_message_label);
      GUI_BRANCH(g_glade_xml, on_okbutton1_clicked);
    }

  gtk_label_set_text(GTK_LABEL(g_message_label), message);
  g_free(message);

  gui_center(g_message_window, screen);

  return TRUE;
}
GtkWidget *
gnc_item_edit_new (GnucashSheet *sheet)
{
    char *hpad_str, *vpad_str, *entry_css;
    GtkStyleContext *stylecontext;
    GtkCssProvider *provider;
    GncItemEdit *item_edit =
            g_object_new (GNC_TYPE_ITEM_EDIT,
                          "sheet", sheet,
                          "spacing",     0,
                          "homogeneous", FALSE,
                           NULL);
    gtk_layout_put (GTK_LAYOUT(sheet), GTK_WIDGET(item_edit), 0, 0);

    // This sets a style class for when Gtk+ version is less than 3.20
    gnc_widget_set_css_name (GTK_WIDGET(item_edit), "cursor");

    /* Create the text entry */
    item_edit->editor = gtk_entry_new();
    sheet->entry = item_edit->editor;
    gtk_entry_set_width_chars (GTK_ENTRY(item_edit->editor), 1);
    gtk_box_pack_start (GTK_BOX(item_edit), item_edit->editor,  TRUE, TRUE, 0);

    // Make sure the Entry can not have focus and no frame
    gtk_widget_set_can_focus (GTK_WIDGET(item_edit->editor), FALSE);
    gtk_entry_set_has_frame (GTK_ENTRY(item_edit->editor), FALSE);

    // Connect to the draw signal so we can draw a cursor
    g_signal_connect_after (item_edit->editor, "draw",
                            G_CALLBACK (draw_text_cursor_cb), NULL);

    // Fill in the background so the underlying sheet cell can not be seen
    g_signal_connect (item_edit, "draw",
                            G_CALLBACK (draw_background_cb), item_edit);

    /* Force padding on the entry to align with the rest of the register this
       is done in the gnucash.css file which should be in line with sheet.h */

    /* Create the popup button
       It will only be displayed when the cell being edited provides
       a popup item (like a calendar or account list) */
    item_edit->popup_toggle.tbutton = gtk_toggle_button_new();
    gtk_toggle_button_set_mode (GTK_TOGGLE_BUTTON (item_edit->popup_toggle.tbutton), FALSE);

    /* Force padding on the button to keep it small and display as much as
       possible of the arrow which is done in the gnucash.css file */

    /* Wrap the popup button in an event box to give it its own gdkwindow.
     * Without one the button would disappear behind the grid object. */
    item_edit->popup_toggle.ebox = gtk_event_box_new();
    g_object_ref(item_edit->popup_toggle.ebox);
    gtk_container_add(GTK_CONTAINER(item_edit->popup_toggle.ebox),
                      item_edit->popup_toggle.tbutton);

    gtk_box_pack_start (GTK_BOX(item_edit),
                        item_edit->popup_toggle.ebox,
                        FALSE, TRUE, 0);
    gtk_widget_show_all(GTK_WIDGET(item_edit));

    return GTK_WIDGET(item_edit);
}
예제 #19
0
int	handle_cashier(GladeXML* s_glade_personal_information_xml, GladeXML* s_glade_account_status_xml, GladeXML* s_glade_exit_cashier_xml, GtkLayout* screen, int init)
{
  if (init)
    {
      s_personal_information_window =
        gui_get_widget(s_glade_personal_information_xml,
                       "personal_information_window");
      g_assert(s_personal_information_window);
      set_nil_draw_focus(s_personal_information_window);
      if(screen) gtk_layout_put(screen, s_personal_information_window, 0, 0);
      s_account_status_window =
        gui_get_widget(s_glade_account_status_xml,
                       "account_status_window");
      g_assert(s_account_status_window);
      if(screen) gtk_layout_put(screen, s_account_status_window, 0, 0);
      s_exit_cashier_window = gui_get_widget(s_glade_exit_cashier_xml, "exit_cashier_window");
      g_assert(s_exit_cashier_window);
      if(screen) gtk_layout_put(screen, s_exit_cashier_window, 0, 0);
      s_exit_button = GTK_BUTTON(gui_get_widget(s_glade_exit_cashier_xml, "exit_cashier"));
      g_assert(s_exit_button);


      {
        static const char*	entries[ENTRIES_CNT] =
          {
            "entry_player_id",
            "entry_email",
          };
        int	i;

        for (i = 0; i < ENTRIES_CNT; i++)
          s_entries[i] = gui_get_widget(s_glade_personal_information_xml,
                                        entries[i]);
      }

      {
        static const char*	labels[LABELS_CNT] =
          {
            "money_one_available",
            "money_one_in_game",
            "money_one_total",
            "money_two_available",
            "money_two_in_game",
            "money_two_total"
          };
        int	i;

        for (i = 0; i < LABELS_CNT; i++)
          s_labels[i] = gui_get_widget(s_glade_account_status_xml,
                                       labels[i]);
      }

      GUI_BRANCH(s_glade_exit_cashier_xml, on_exit_cashier_clicked);

      gtk_widget_hide(s_personal_information_window);
      gtk_widget_hide(s_account_status_window);
      gtk_widget_hide(s_exit_cashier_window);
    }

  char* showhide = get_string();

  char*	fields[20];
  char**	pfields = fields;
  int	i = get_int();
  int	fields_cnt = 0;

  if(i > 0) {

    g_message("cashier got %d entries", i);
    while (i-- > 0)
      {
        char*	str = get_string();
        if (fields_cnt < 20)
          fields[fields_cnt++] = str;
      }
  

    for (i = 0; i < ENTRIES_CNT; i++)
      {
        char*	str = *pfields++;
        gtk_entry_set_text(GTK_ENTRY(s_entries[i]), str);
      }

    {
      char* str = *pfields++;
      GtkTextView* address = GTK_TEXT_VIEW(gui_get_widget(s_glade_personal_information_xml, "entry_mailing_address"));
      GtkTextBuffer* buffer = gtk_text_view_get_buffer(address);
      gtk_text_buffer_set_text(buffer, str, -1);
    }

    for (i = 0; i < LABELS_CNT; i++)
      {
        char*	str = *pfields++;
        gtk_label_set_text(GTK_LABEL(s_labels[i]), str);
      }

    for (i = 0; i < fields_cnt; i++) {
      g_free(fields[i]);
    }

  }

  if(!strcmp(showhide, "show")) {

    /*
     * calculate windows position
     */
    int	screen_width = gui_width(screen);
    int	screen_height = gui_height(screen);

    /*
     * should be based on the size of the windows ...
     */
    int	top_left_x = (screen_width - 913) / 2;
    int	top_left_y = (screen_height - 450) / 2;
    int	account_status_x = top_left_x + 381;
    int	exit_cashier_y = top_left_y + 320;

    s_personal_information_position.x = top_left_x;
    s_personal_information_position.y = top_left_y;
    s_account_status_position.x = account_status_x;
    s_account_status_position.y = top_left_y;
    s_exit_cashier_position.x = top_left_x;
    s_exit_cashier_position.y = exit_cashier_y;

    {
      char* label = get_string();
      gtk_button_set_label(s_exit_button, label);
      g_free(label);
    }

    {
      //moneyone
      GtkWidget* sl = gui_get_widget(s_glade_account_status_xml, "money_one_name");
      char* label = get_string();
      gtk_label_set_text(GTK_LABEL(sl), label);
      g_free(label);
    }
    {
      //moneytwo
      GtkWidget* sl = gui_get_widget(s_glade_account_status_xml, "money_two_name");
      char* label = get_string();
      gtk_label_set_text(GTK_LABEL(sl), label);
      g_free(label);
    }

    if ((screen != NULL) || (s_cashier_shown == 0))
    {
      gui_place(s_personal_information_window, &s_personal_information_position, screen);
      gui_place(s_account_status_window, &s_account_status_position, screen);
      gui_place(s_exit_cashier_window, &s_exit_cashier_position, screen);
      s_cashier_shown = 1;
    }
  } else {
    if (screen != NULL)
      {
        hide_cashier();
      }
  }

  g_free(showhide);

  return TRUE;
}
예제 #20
0
파일: timing-dia.c 프로젝트: abhaykadam/vm
static void timing_inst_layout_refresh(struct vgpu_compute_unit_t *compute_unit)
{
	struct vgpu_uop_t *uop;
	int x, y, top_y;
	int i;

	/* Check if diagram needs to get recalculated */
	if (timing_dia_needs_refresh(compute_unit))
		timing_dia_refresh(compute_unit);

	/* Remove all child widgets in 'timing_inst_layout' */
	gtk_container_destroy_children(GTK_CONTAINER(compute_unit->timing_inst_layout));

	/* White background */
	GdkColor color;
	gdk_color_parse("white", &color);

	/* Attributes for labels */
	PangoAttrList *attrs;
	PangoAttribute *size_attr;
	attrs = pango_attr_list_new();
	size_attr = pango_attr_size_new_absolute(13 << 10);
	pango_attr_list_insert(attrs, size_attr);

	/* Instruction list */
	top_y = -((int) compute_unit->timing_dia_vscrollbar_value % timing_dia_row_height);
	y = top_y;
	for (i = 0; i < compute_unit->timing_dia_height; i++)
	{
		char text[MAX_STRING_SIZE];

		GtkWidget *label;
		GtkWidget *event_box;
		GtkRequisition req;

		uop = list_get(compute_unit->timing_inst_uops, i);
		if (uop)
		{
			/* Create label + event box for 'I-x' */
			x = 0;
			snprintf(text, sizeof text, "I-%d", uop->id);
			label = gtk_label_new(text);
			event_box = gtk_event_box_new();
			gtk_widget_modify_bg(event_box, GTK_STATE_NORMAL, &color);
			gtk_container_add(GTK_CONTAINER(event_box), label);
			gtk_layout_put(GTK_LAYOUT(compute_unit->timing_inst_layout), event_box, x, y);
			gtk_widget_set_size_request(event_box, 40, timing_dia_row_height);
			gtk_label_set_attributes(GTK_LABEL(label), attrs);
			g_signal_connect(G_OBJECT(event_box), "enter-notify-event", G_CALLBACK(list_layout_label_enter_notify_event), NULL);
			g_signal_connect(G_OBJECT(event_box), "leave-notify-event", G_CALLBACK(list_layout_label_leave_notify_event), NULL);
			g_signal_connect(G_OBJECT(event_box), "button-press-event", G_CALLBACK(timing_inst_layout_clicked_event), uop);

			/* Create label + event box for instruction name */
			x = 42;
			label = gtk_label_new(NULL);
			event_box = gtk_event_box_new();
			gtk_widget_modify_bg(event_box, GTK_STATE_NORMAL, &color);
			vgpu_uop_get_markup(uop, text, sizeof(text));
			gtk_label_set_markup(GTK_LABEL(label), text);
			gtk_container_add(GTK_CONTAINER(event_box), label);
			gtk_layout_put(GTK_LAYOUT(compute_unit->timing_inst_layout), event_box, x, y);
			gtk_widget_size_request(label, &req);
			gtk_widget_set_size_request(event_box, req.width, timing_dia_row_height);
			gtk_label_set_attributes(GTK_LABEL(label), attrs);
			gtk_misc_set_alignment(GTK_MISC(label), 0, 0.5);

		}
		y += timing_dia_row_height;
	}
	gtk_widget_show_all(compute_unit->timing_inst_layout);
}
예제 #21
0
파일: interface.c 프로젝트: azzbcc/Tfn2k
/*
 * 画主界面
 */
GtkWidget *CreateMainWindow() {

	// 控件初始化
	mainWindow.layout = gtk_layout_new(NULL, NULL);
	mainWindow.window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
	mainWindow.list_puppet = gtk_tree_view_new();
	mainWindow.entry_target = gtk_entry_new();
	mainWindow.label_puppet = gtk_label_new("代理端主机列表:");
	mainWindow.label_method = gtk_label_new("攻击方式:");
	mainWindow.label_target = gtk_label_new("目标主机地址:");
	mainWindow.button_attack = gtk_button_new_with_label("攻击");
	mainWindow.button_stop = gtk_button_new_with_label("停止");
	mainWindow.button_quit = gtk_button_new_with_label("退出");
	mainWindow.button_insert = gtk_button_new_with_label("新增");
	mainWindow.button_delete = gtk_button_new_with_label("删除");
	mainWindow.checkbutton_icmp = gtk_check_button_new_with_label("ICMP Flood");
	mainWindow.checkbutton_tcp = gtk_check_button_new_with_label("TCP Flood");
	mainWindow.checkbutton_udp = gtk_check_button_new_with_label("UDP Flood");
	mainWindow.selection = gtk_tree_view_get_selection(GTK_TREE_VIEW(mainWindow.list_puppet));

	// 设置控件大小
	gtk_widget_set_size_request(mainWindow.list_puppet, 200, 150);
	gtk_widget_set_size_request(mainWindow.entry_target, 200, 30);
	gtk_widget_set_size_request(mainWindow.label_puppet, 100, 30);
	gtk_widget_set_size_request(mainWindow.label_target, 100, 30);
	gtk_widget_set_size_request(mainWindow.label_method, 60, 30);
	gtk_widget_set_size_request(mainWindow.button_attack, 80, 40);
	gtk_widget_set_size_request(mainWindow.button_stop, 80, 40);
	gtk_widget_set_size_request(mainWindow.button_quit, 80, 40);
	gtk_widget_set_size_request(mainWindow.button_insert, 80, 40);
	gtk_widget_set_size_request(mainWindow.button_delete, 80, 40);
	gtk_widget_set_size_request(mainWindow.checkbutton_icmp, 120, 20);
	gtk_widget_set_size_request(mainWindow.checkbutton_tcp, 100, 20);
	gtk_widget_set_size_request(mainWindow.checkbutton_udp, 100, 20);

	//将控件添加到界面
	gtk_container_add((GtkContainer *) mainWindow.window, mainWindow.layout);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.list_puppet, 20,
			50);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.entry_target,
			130, 280);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.label_puppet, 20,
			20);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.label_method, 20,
			220);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.label_target, 20,
			280);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.button_attack,
			20, 330);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.button_stop, 140,
			330);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.button_quit, 260,
			330);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.button_insert,
			240, 50);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.button_delete,
			240, 160);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.checkbutton_icmp,
			20, 245);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.checkbutton_tcp,
			140, 245);
	gtk_layout_put((GtkLayout *) mainWindow.layout, mainWindow.checkbutton_udp,
			260, 245);

	init_list(mainWindow.list_puppet);

	// 设置主窗口标题
	gtk_window_set_title(GTK_WINDOW(mainWindow.window), "TFN2k 测试版");
	// 设置主窗口大小
	gtk_widget_set_usize(GTK_WIDGET(mainWindow.window), 360, 390);
	// 设置主窗口位置
	gtk_window_set_position(GTK_WINDOW(mainWindow.window),
			GTK_WIN_POS_CENTER_ALWAYS);
	// 设置窗口图标
	gtk_window_set_icon(GTK_WINDOW(mainWindow.window),
			create_pixbuf("images/web.png"));
	// 设置窗口大小不可更改
	gtk_window_set_resizable(GTK_WINDOW(mainWindow.window), FALSE);

	gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(mainWindow.list_puppet), FALSE);

	// 点击quit键,回调gtk_main_quit函数
	g_signal_connect(mainWindow.window, "destroy", G_CALLBACK(gtk_main_quit),
			NULL);
	// 点击退出键,回调gtk_main_quit函数
	g_signal_connect(mainWindow.button_quit, "clicked",
			G_CALLBACK(gtk_main_quit), NULL);
	// 点击攻击键,回调tfn_main_attack函数
	g_signal_connect(mainWindow.button_attack, "clicked",
			G_CALLBACK(tfn_main_attack), NULL);
	// 点击停止键,回调tfn_main_stop函数
	g_signal_connect(mainWindow.button_stop, "clicked",
			G_CALLBACK(tfn_main_stop), NULL);
	// 点击新增键,回调tfn_main_insert函数
	g_signal_connect(mainWindow.button_insert, "clicked",
			G_CALLBACK(tfn_main_insert), NULL);
	// 点击删除键,回调tfn_main_delete函数
	g_signal_connect(mainWindow.button_delete, "clicked",
			G_CALLBACK(tfn_main_delete), mainWindow.selection);

	return mainWindow.window;
}
예제 #22
0
파일: window.c 프로젝트: fmf/music-widget
gboolean set_widgets_defaults(GtkWidget *mvbox, track_t *t, GdkRGBA *color)
{
	GtkWidget *hbox, *vbox, *label, *hbox2,
						*sep, *button, *img, *eventBox;
	gint i = 0;
	GdkRGBA buttonNormal = {1, 1, 1, 0.2};
	GdkRGBA buttonSelected = {1, 1, 1, 0.6};


	hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 10);
	gtk_box_pack_start(GTK_BOX(mvbox), hbox, 0, 0, 1);

	/* album image */
	eventBox = gtk_event_box_new();
	gtk_event_box_set_visible_window(GTK_EVENT_BOX(eventBox), 0);
	gtk_widget_set_events(eventBox, GDK_BUTTON_PRESS_MASK);

	t->trackw.image = gtk_image_new();
	gtk_container_add(GTK_CONTAINER(eventBox), t->trackw.image);
	g_signal_connect(eventBox, "button_press_event", G_CALLBACK(show_player_callback), NULL);
	gtk_box_pack_start(GTK_BOX(hbox), eventBox, 0, 0, 0);


	/* track info: name, artist, album */
	vbox = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
	gtk_box_pack_start(GTK_BOX(hbox), vbox, 0, 0, 0);


	t->trackw.label.name = gtk_label_new(NULL);
	gtk_misc_set_alignment(GTK_MISC(t->trackw.label.name), 0, 0);
	/* create the layout to be able to scrol the label's contents */
	t->trackw.layout.name = gtk_layout_new(NULL, NULL);
	/* set size otherwise it won't show up */
	gtk_widget_set_size_request(t->trackw.layout.name, SCROLL_SIZE_W, SCROLL_SIZE_H);
	/* make layout's color the same as the window's */
	gtk_widget_override_background_color(t->trackw.layout.name, GTK_STATE_FLAG_NORMAL, color);
	gtk_layout_put(GTK_LAYOUT(t->trackw.layout.name), t->trackw.label.name, 0, 0);


	t->trackw.label.artist = gtk_label_new(NULL);
	gtk_misc_set_alignment(GTK_MISC(t->trackw.label.artist), 0, 0);
	t->trackw.layout.artist = gtk_layout_new(NULL, NULL);
	gtk_widget_set_size_request(t->trackw.layout.artist, SCROLL_SIZE_W-23, SCROLL_SIZE_H);
	gtk_widget_override_background_color(t->trackw.layout.artist, GTK_STATE_FLAG_NORMAL, color);
	gtk_layout_put(GTK_LAYOUT(t->trackw.layout.artist), t->trackw.label.artist, 0, 0);


	t->trackw.label.album = gtk_label_new(NULL);
	gtk_misc_set_alignment(GTK_MISC(t->trackw.label.album), 0, 0);
	t->trackw.layout.album = gtk_layout_new(NULL, NULL);
	gtk_widget_set_size_request(t->trackw.layout.album, SCROLL_SIZE_W-40, SCROLL_SIZE_H);
	gtk_widget_override_background_color(t->trackw.layout.album, GTK_STATE_FLAG_NORMAL, color);
	gtk_layout_put(GTK_LAYOUT(t->trackw.layout.album), t->trackw.label.album, 0, 0);


	/* put the name, artist and album at their places */
	gtk_box_pack_start(GTK_BOX(vbox), t->trackw.layout.name, 0, 0, 0);


	hbox2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
	gtk_box_pack_start(GTK_BOX(vbox), hbox2, 0, 0, 0);

	label = gtk_label_new(NULL);
	gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
	gtk_label_set_markup(GTK_LABEL(label), "<span font='Sans 11' font_style='italic'"
												"color='#FFFFFF'>by </span>");
	gtk_box_pack_start(GTK_BOX(hbox2), label, 0, 0, 0);
	gtk_box_pack_start(GTK_BOX(hbox2), t->trackw.layout.artist, 0, 0, 0);


	hbox2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
	gtk_box_pack_start(GTK_BOX(vbox), hbox2, 0, 0, 0);

	label = gtk_label_new(NULL);
	gtk_misc_set_alignment(GTK_MISC(label), 0, 0);
	gtk_label_set_markup(GTK_LABEL(label), "<span font='Sans 11' font_style='italic'"
												"color='#FFFFFF'>from </span>");
	gtk_box_pack_start(GTK_BOX(hbox2), label, 0, 0, 0);
	gtk_box_pack_start(GTK_BOX(hbox2), t->trackw.layout.album, 0, 0, 0);


	/* puts the genre, rating, year, and playcount */
	hbox2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
	gtk_box_pack_start(GTK_BOX(vbox), hbox2, 0, 0, 0);

	t->trackw.genre = gtk_label_new(NULL);
	gtk_misc_set_alignment(GTK_MISC(t->trackw.genre), 0, 0);
	gtk_box_pack_start(GTK_BOX(hbox2), t->trackw.genre, 0, 0, 0);


	sep = gtk_separator_new(GTK_ORIENTATION_VERTICAL);
	gtk_box_pack_start(GTK_BOX(hbox2), sep, 0, 0, 3);


	for (i = 0; i < 5; i++) {
		t->trackw.stars[i] = gtk_image_new();
		gtk_box_pack_start(GTK_BOX(hbox2), t->trackw.stars[i], 0, 0, 1);
	}


	sep = gtk_separator_new(GTK_ORIENTATION_VERTICAL);
	gtk_box_pack_start(GTK_BOX(hbox2), sep, 0, 0, 3);


	t->trackw.year = gtk_label_new(NULL);
	gtk_misc_set_alignment(GTK_MISC(t->trackw.year), 0, 0);
	gtk_box_pack_start(GTK_BOX(hbox2), t->trackw.year, 0, 0, 0);


	sep = gtk_separator_new(GTK_ORIENTATION_VERTICAL);
	gtk_box_pack_start(GTK_BOX(hbox2), sep, 0, 0, 3);


	t->trackw.playcount = gtk_label_new(NULL);
	gtk_misc_set_alignment(GTK_MISC(t->trackw.playcount), 0, 0);
	gtk_box_pack_start(GTK_BOX(hbox2), t->trackw.playcount, 0, 0, 0);


	/* puts the current position, the slider showing the progress
	 * and track length */
	hbox2 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
	gtk_box_pack_start(GTK_BOX(vbox), hbox2, 0, 0, 0);


	t->trackw.position = gtk_label_new(NULL);
	gtk_misc_set_alignment(GTK_MISC(t->trackw.position), 0, 0);
	gtk_box_pack_start(GTK_BOX(hbox2), t->trackw.position, 0, 0, 0);


	t->trackw.slider = gtk_scale_new(GTK_ORIENTATION_HORIZONTAL, NULL);
	gtk_widget_set_size_request(t->trackw.slider, 170, -1);
	gtk_scale_set_draw_value(GTK_SCALE(t->trackw.slider), 0);
	gtk_range_set_show_fill_level(GTK_RANGE(t->trackw.slider), 1);
	gtk_range_set_restrict_to_fill_level(GTK_RANGE(t->trackw.slider), 0);
	/*g_signal_connect(t->trackw.slider, "value-changed", G_CALLBACK(slider_value_changed), NULL);*/
	gtk_box_pack_start(GTK_BOX(hbox2), t->trackw.slider, 0, 0, 0);


	t->trackw.length = gtk_label_new(NULL);
	gtk_misc_set_alignment(GTK_MISC(t->trackw.length), 0, 0);
	gtk_box_pack_start(GTK_BOX(hbox2), t->trackw.length, 0, 0, 0);


	/* the player controls */
	hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 5);
	gtk_box_pack_start(GTK_BOX(mvbox), hbox, 0, 0, 0);


	img = gtk_image_new_from_pixbuf(gdk_pixbuf_new_from_xpm_data(prev_xpm));
	button = gtk_button_new();
	gtk_widget_override_background_color(button, GTK_STATE_FLAG_NORMAL, &buttonNormal);
	gtk_widget_override_background_color(button, GTK_STATE_FLAG_ACTIVE, &buttonSelected);
	gtk_container_add(GTK_CONTAINER(button), img);
	g_signal_connect(button, "clicked", G_CALLBACK(button_callback),
										GINT_TO_POINTER(BUTTON_PREV));
	gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0);


	t->playerControls.playPause = gtk_image_new();
	button = gtk_button_new();
	gtk_widget_override_background_color(button, GTK_STATE_FLAG_NORMAL, &buttonNormal);
	gtk_widget_override_background_color(button, GTK_STATE_FLAG_ACTIVE, &buttonSelected);
	gtk_container_add(GTK_CONTAINER(button), t->playerControls.playPause);
	g_signal_connect(button, "clicked", G_CALLBACK(button_callback),
										GINT_TO_POINTER(BUTTON_PLAY_PAUSE));
	gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0);


	img = gtk_image_new_from_pixbuf(gdk_pixbuf_new_from_xpm_data(next_xpm));
	button = gtk_button_new();
	gtk_widget_override_background_color(button, GTK_STATE_FLAG_NORMAL, &buttonNormal);
	gtk_widget_override_background_color(button, GTK_STATE_FLAG_ACTIVE, &buttonSelected);
	gtk_container_add(GTK_CONTAINER(button), img);
	g_signal_connect(button, "clicked", G_CALLBACK(button_callback),
										GINT_TO_POINTER(BUTTON_NEXT));
	gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0);


	sep = gtk_separator_new(GTK_ORIENTATION_VERTICAL);
	gtk_box_pack_start(GTK_BOX(hbox), sep, 0, 0, 2);

	t->playerControls.repeat = gtk_image_new();
	button = gtk_button_new();
	gtk_widget_override_background_color(button, GTK_STATE_FLAG_NORMAL, &buttonNormal);
	gtk_widget_override_background_color(button, GTK_STATE_FLAG_ACTIVE, &buttonSelected);
	gtk_container_add(GTK_CONTAINER(button), t->playerControls.repeat);
	g_signal_connect(button, "clicked", G_CALLBACK(button_callback),
										GINT_TO_POINTER(BUTTON_REPEAT));
	gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0);


	t->playerControls.shuffle = gtk_image_new();
	button = gtk_button_new();
	gtk_widget_override_background_color(button, GTK_STATE_FLAG_NORMAL, &buttonNormal);
	gtk_widget_override_background_color(button, GTK_STATE_FLAG_ACTIVE, &buttonSelected);
	gtk_container_add(GTK_CONTAINER(button), t->playerControls.shuffle);
	g_signal_connect(button, "clicked", G_CALLBACK(button_callback),
										GINT_TO_POINTER(BUTTON_SHUFFLE));
	gtk_box_pack_start(GTK_BOX(hbox), button, 0, 0, 0);

	return TRUE;
}
예제 #23
0
MimeView *mimeview_create(MainWindow *mainwin)
{
	MimeView *mimeview;

	GtkWidget *paned;
	GtkWidget *scrolledwin;
	GtkWidget *ctree;
	GtkWidget *mime_notebook;
	GtkWidget *popupmenu;
	GtkWidget *ctree_mainbox;
	GtkWidget *vbox;
	GtkWidget *mime_toggle;
	GtkWidget *icon_mainbox;
	GtkWidget *icon_scroll;
	GtkWidget *icon_vbox;
	GtkWidget *arrow;
	GtkWidget *scrollbutton;
	GtkWidget *hbox;
	GtkTooltips *tooltips;
	GtkItemFactory *popupfactory;
	NoticeView *siginfoview;
	gchar *titles[N_MIMEVIEW_COLS];
	gint n_entries;
	gint i;

	debug_print("Creating MIME view...\n");
	mimeview = g_new0(MimeView, 1);

	titles[COL_MIMETYPE] = _("MIME Type");
	titles[COL_SIZE]     = _("Size");
	titles[COL_NAME]     = _("Name");

	scrolledwin = gtk_scrolled_window_new(NULL, NULL);
	gtk_widget_show(scrolledwin);
	gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
				       GTK_POLICY_AUTOMATIC,
				       GTK_POLICY_ALWAYS);

	ctree = gtk_sctree_new_with_titles(N_MIMEVIEW_COLS, 0, titles);
	gtk_widget_show(ctree);
	gtk_clist_set_selection_mode(GTK_CLIST(ctree), GTK_SELECTION_BROWSE);
	gtk_ctree_set_line_style(GTK_CTREE(ctree), GTK_CTREE_LINES_NONE);
	gtk_clist_set_column_justification(GTK_CLIST(ctree), COL_SIZE,
					   GTK_JUSTIFY_RIGHT);
	gtk_clist_set_column_width(GTK_CLIST(ctree), COL_MIMETYPE, 240);
	gtk_clist_set_column_width(GTK_CLIST(ctree), COL_SIZE, 90);
	for (i = 0; i < N_MIMEVIEW_COLS; i++)
		GTK_WIDGET_UNSET_FLAGS(GTK_CLIST(ctree)->column[i].button,
				       GTK_CAN_FOCUS);
	gtk_container_add(GTK_CONTAINER(scrolledwin), ctree);

	gtk_signal_connect(GTK_OBJECT(ctree), "tree_select_row",
			   GTK_SIGNAL_FUNC(mimeview_selected), mimeview);
	gtk_signal_connect(GTK_OBJECT(ctree), "button_release_event",
			   GTK_SIGNAL_FUNC(mimeview_button_pressed), mimeview);
	gtk_signal_connect(GTK_OBJECT(ctree), "key_press_event",
			   GTK_SIGNAL_FUNC(mimeview_key_pressed), mimeview);
	gtk_signal_connect(GTK_OBJECT (ctree),"start_drag",
			   GTK_SIGNAL_FUNC (mimeview_start_drag), mimeview);
	gtk_signal_connect(GTK_OBJECT(ctree), "drag_data_get",
			   GTK_SIGNAL_FUNC(mimeview_drag_data_get), mimeview);

	mime_notebook = gtk_notebook_new();
        gtk_widget_show(mime_notebook);
        GTK_WIDGET_UNSET_FLAGS(mime_notebook, GTK_CAN_FOCUS);
        gtk_notebook_set_show_tabs(GTK_NOTEBOOK(mime_notebook), FALSE);
        gtk_notebook_set_show_border(GTK_NOTEBOOK(mime_notebook), FALSE);
	
	icon_vbox = gtk_vbox_new(FALSE, 2);
	gtk_widget_show(icon_vbox);
	icon_scroll = gtk_layout_new(NULL, NULL);
	gtk_widget_show(icon_scroll);
	gtk_layout_put(GTK_LAYOUT(icon_scroll), icon_vbox, 0, 0);
	scrollbutton = gtk_vscrollbutton_new(gtk_layout_get_vadjustment(GTK_LAYOUT(icon_scroll)));
	gtk_widget_show(scrollbutton);

    	mime_toggle = gtk_toggle_button_new();
	gtk_widget_show(mime_toggle);
	arrow = gtk_arrow_new(GTK_ARROW_LEFT, GTK_SHADOW_NONE);
	gtk_widget_show(arrow);
	gtk_container_add(GTK_CONTAINER(mime_toggle), arrow);
	gtk_signal_connect(GTK_OBJECT(mime_toggle), "toggled", 
			   GTK_SIGNAL_FUNC(mime_toggle_button_cb), mimeview);

	icon_mainbox = gtk_vbox_new(FALSE, 0);
	gtk_widget_show(icon_mainbox);
	gtk_box_pack_start(GTK_BOX(icon_mainbox), mime_toggle, FALSE, FALSE, 0);
	gtk_box_pack_start(GTK_BOX(icon_mainbox), icon_scroll, TRUE, TRUE, 3);
	gtk_box_pack_end(GTK_BOX(icon_mainbox), scrollbutton, FALSE, FALSE, 0);
	gtk_signal_connect(GTK_OBJECT(icon_mainbox), "size_allocate", 
			GTK_SIGNAL_FUNC(icon_scroll_size_allocate_cb), mimeview);
	
	ctree_mainbox = gtk_hbox_new(FALSE, 0);	
	gtk_box_pack_start(GTK_BOX(ctree_mainbox), scrolledwin, TRUE, TRUE, 0);

 	n_entries = sizeof(mimeview_popup_entries) /
 		sizeof(mimeview_popup_entries[0]);
 	popupmenu = menu_create_items(mimeview_popup_entries, n_entries,
 				      "<MimeView>", &popupfactory, mimeview);
	tooltips = gtk_tooltips_new();
	gtk_tooltips_set_delay(tooltips, 0); 

	vbox = gtk_vbox_new(FALSE, 0);
	gtk_widget_show(vbox);
	siginfoview = noticeview_create(mainwin);
	noticeview_hide(siginfoview);
	gtk_box_pack_start(GTK_BOX(vbox), mime_notebook, TRUE, TRUE, 0);
	gtk_box_pack_end(GTK_BOX(vbox), GTK_WIDGET_PTR(siginfoview), FALSE, FALSE, 0);

	paned = gtk_vpaned_new();
	gtk_widget_show(paned);
	gtk_paned_set_gutter_size(GTK_PANED(paned), 0);
	gtk_paned_pack1(GTK_PANED(paned), ctree_mainbox, FALSE, TRUE);
	gtk_paned_pack2(GTK_PANED(paned), vbox, TRUE, TRUE);
	
	hbox = gtk_hbox_new(FALSE, 0);
	gtk_box_pack_start(GTK_BOX(hbox), paned, TRUE, TRUE, 0);
	gtk_box_pack_start(GTK_BOX(hbox), icon_mainbox, FALSE, FALSE, 0);

	gtk_widget_show(hbox);
	gtk_widget_hide(ctree_mainbox);

	mimeview->hbox          = hbox;
	mimeview->paned         = paned;
	mimeview->scrolledwin   = scrolledwin;
	mimeview->ctree         = ctree;
	mimeview->mime_notebook = mime_notebook;
	mimeview->popupmenu     = popupmenu;
	mimeview->popupfactory  = popupfactory;
	mimeview->type          = -1;
	mimeview->ctree_mainbox = ctree_mainbox;
	mimeview->icon_scroll   = icon_scroll;
	mimeview->icon_vbox     = icon_vbox;
	mimeview->icon_mainbox  = icon_mainbox;
	mimeview->icon_count    = 0;
	mimeview->mainwin       = mainwin;
	mimeview->tooltips      = tooltips;
	mimeview->oldsize       = 60;
	mimeview->mime_toggle   = mime_toggle;
	mimeview->siginfoview	= siginfoview;

	mimeview->target_list	= gtk_target_list_new(mimeview_mime_types, 1); 
	
	mimeviews = g_slist_prepend(mimeviews, mimeview);

	return mimeview;
}
예제 #24
0
void FloatingWindow::display(bool startup)
// Does the bookkeeping necessary for displaying the floating box.
// startup: whether the box is started at program startup.
{
  // Settings.
  extern Settings *settings;

  // The parameters of all the windows.
  WindowData window_parameters(false);

  // Clear the new window's position.
  my_gdk_rectangle.x = 0;
  my_gdk_rectangle.y = 0;
  my_gdk_rectangle.width = 0;
  my_gdk_rectangle.height = 0;

  // At program startup extract the position and size of the window from the general configuration.
  // It does not matter whether the space for the window is already taken up by another window,
  // because the user wishes to use the coordinates that he has set for this window.
  for (unsigned int i = 0; i < window_parameters.widths.size(); i++) {
    if ((window_parameters.ids[i] == window_id) && (window_parameters.titles[i] == title) && startup) {
      my_gdk_rectangle.x = window_parameters.x_positions[i];
      my_gdk_rectangle.y = window_parameters.y_positions[i];
      my_gdk_rectangle.width = window_parameters.widths[i];
      my_gdk_rectangle.height = window_parameters.heights[i];
    }
  }

  // Reject zero width and zero height values on startup.
  if ((my_gdk_rectangle.width == 0) || (my_gdk_rectangle.height == 0))
    startup = false;

  // When a new window needs to be allocated, there are a few steps to be taken.
  if (!startup) {

    // Step 1: The area rectangle where the window should fit in is defined. 
    GdkRectangle area_rectangle;
    area_rectangle.x = 0;
    area_rectangle.y = 0;
    area_rectangle.width = 0;
    area_rectangle.height = 0;
    {
      guint width, height;
      gtk_layout_get_size (GTK_LAYOUT (layout), &width, &height);
      area_rectangle.width = width;
      area_rectangle.height = height;
    }

    // Step 2: An available region is made of that whole area.
    GdkRegion *available_region = gdk_region_rectangle(&area_rectangle);

    // Step 3: The regions of each of the open windows is substracted from the available region.
    for (unsigned int i = 0; i < settings->session.open_floating_windows.size(); i++) {
      FloatingWindow * floating_window = (FloatingWindow *) settings->session.open_floating_windows[i];
      GdkRectangle rectangle = floating_window->rectangle_get();
      GdkRegion *region = gdk_region_rectangle(&rectangle);
      gdk_region_subtract(available_region, region);
      gdk_region_destroy(region);
    }

    // Step 4: The rectangles that the area region consists of are requested,
    // and the biggest suitable rectangle is chosen for the window.
    // A rectangle is considered suitable if it has at least 10% of the width, and 10% of the height of the area rectangle.
    GdkRectangle *gdk_rectangles = NULL;
    gint rectangle_count = 0;
    gdk_region_get_rectangles(available_region, &gdk_rectangles, &rectangle_count);
    for (int i = 0; i < rectangle_count; ++i) {
      GdkRectangle & rectangle = gdk_rectangles[i];
      if (rectangle.width >= (area_rectangle.width / 10)) {
        if (rectangle.height >= (area_rectangle.height / 10)) {
          if ((rectangle.width * rectangle.height) > (my_gdk_rectangle.width * my_gdk_rectangle.height)) {
            my_gdk_rectangle = rectangle;
          }
        }
      }
    }
    g_free(gdk_rectangles);

    // Step 5: The available region is destroyed.
    gdk_region_destroy(available_region);

    // Step 6: If no area big enough is found, then the window that takes most space in the area is chosen, 
    // the longest side is halved, and the new window is put in that freed area.
    if ((my_gdk_rectangle.width == 0) || (my_gdk_rectangle.height == 0)) {
      FloatingWindow * resize_window_pointer = NULL;
      int largest_size = 0;
      for (unsigned int i = 0; i < settings->session.open_floating_windows.size(); i++) {
        FloatingWindow *floating_window = (FloatingWindow *) settings->session.open_floating_windows[i];
        GdkRectangle rectangle = floating_window->rectangle_get ();
        int size = rectangle.width * rectangle.height;
        if (size > largest_size) {
          resize_window_pointer = floating_window;
          largest_size = size;
        }
      }
      if (resize_window_pointer) {
        GdkRectangle resize_window_rectangle = resize_window_pointer->rectangle_get();
        my_gdk_rectangle = resize_window_pointer->rectangle_get();
        if (resize_window_rectangle.width > resize_window_rectangle.height) {
          resize_window_rectangle.width /= 2;
          my_gdk_rectangle.width /= 2;
          my_gdk_rectangle.x += resize_window_rectangle.width;
        } else {
          resize_window_rectangle.height /= 2;
          my_gdk_rectangle.height /= 2;
          my_gdk_rectangle.y += resize_window_rectangle.height;
        }
        resize_window_pointer->rectangle_set (resize_window_rectangle);
      }
    }
  }
  // Add the window to the layout and set its position and size.
  gtk_layout_put (GTK_LAYOUT (layout), vbox_window, my_gdk_rectangle.x, my_gdk_rectangle.y);
  rectangle_set (my_gdk_rectangle);
  // Store a pointer to this window in the Session.
  settings->session.open_floating_windows.push_back(gpointer (this));
}
void
gnc_item_edit_show_popup (GncItemEdit *item_edit)
{
    GtkToggleButton *toggle;
    GtkAdjustment *vadj, *hadj;
    GtkAllocation alloc;
    GnucashSheet *sheet;
    gint x, y, w, h;
    gint y_offset, x_offset;
    gint popup_x, popup_y;
    gint popup_w = -1, popup_h = -1;
    gint popup_max_width, popup_max_height;
    gint view_width, view_height;
    gint down_height, up_height;
    gint sheet_width;

    g_return_if_fail (item_edit != NULL);
    g_return_if_fail (GNC_IS_ITEM_EDIT(item_edit));

    if (!item_edit->is_popup)
        return;

    sheet = item_edit->sheet;

    sheet_width = sheet->width;

    gtk_widget_get_allocation (GTK_WIDGET (sheet), &alloc);
    view_height = alloc.height;
    view_width  = alloc.width;

    vadj = gtk_scrollable_get_vadjustment(GTK_SCROLLABLE(sheet));
    hadj = gtk_scrollable_get_hadjustment(GTK_SCROLLABLE(sheet));

    y_offset = gtk_adjustment_get_value(vadj);
    x_offset = gtk_adjustment_get_value(hadj);
    gnc_item_edit_get_pixel_coords (item_edit, &x, &y, &w, &h);

    popup_x = x;

    up_height = y - y_offset;
    down_height = view_height - (up_height + h);

    popup_max_height = MAX (up_height, down_height);
    popup_max_width = sheet_width - popup_x + x_offset; // always pops to the right

    if (item_edit->popup_get_height)
        popup_h = item_edit->popup_get_height
                       (item_edit->popup_item, popup_max_height, h,
                        item_edit->popup_user_data);

    if (item_edit->popup_autosize)
        popup_w =
            item_edit->popup_autosize (item_edit->popup_item,
                                       popup_max_width,
                                       item_edit->popup_user_data);
    else
        popup_w = 0;

    // Adjust the popup_y point based on popping above or below
    if (up_height > down_height)
        popup_y = y - popup_h;
    else
        popup_y = y + h;

    if (!gtk_widget_get_parent (item_edit->popup_item))
        gtk_layout_put (GTK_LAYOUT(sheet), item_edit->popup_item, popup_x, popup_y);

    gtk_widget_set_size_request (item_edit->popup_item, popup_w - 1, popup_h);

    toggle = GTK_TOGGLE_BUTTON(item_edit->popup_toggle.tbutton);

    if (!gtk_toggle_button_get_active (toggle))
    {
        block_toggle_signals (item_edit);
        gtk_toggle_button_set_active (toggle, TRUE);
        unblock_toggle_signals (item_edit);
    }

    // set the popup arrow direction up
    item_edit->popup_toggle.arrow_down = FALSE;

    if (item_edit->popup_set_focus)
        item_edit->popup_set_focus (item_edit->popup_item,
                                    item_edit->popup_user_data);

    if (item_edit->popup_post_show)
        item_edit->popup_post_show (item_edit->popup_item,
                                    item_edit->popup_user_data);

    if (item_edit->popup_get_width)
    {
        int popup_width;

        popup_width = item_edit->popup_get_width
                      (item_edit->popup_item,
                       item_edit->popup_user_data);

        if (popup_width > popup_w)
            popup_width = popup_w;

        if (popup_width > popup_max_width)
        {
            popup_x -= popup_width - popup_max_width;
            popup_x = MAX (0, popup_x);
        }
        else
            popup_x = x;

        gtk_layout_move (GTK_LAYOUT(sheet), item_edit->popup_item, popup_x, popup_y);
    }
}
예제 #26
0
void vi_list_refresh(struct vi_list_t *list)
{
	int width;
	int height;

	int x;
	int y;

	int count;
	int i;

	GtkStyle *style;
	GList *child;

	/* Clear current item list and empty layout */
	while (list->item_list->count)
		vi_list_item_free(list_remove_at(list->item_list, 0));
	while ((child = gtk_container_get_children(GTK_CONTAINER(list->widget))))
		gtk_container_remove(GTK_CONTAINER(list->widget), child->data);

	/* Get 'list' widget size */
	width = gtk_widget_get_allocated_width(list->widget);
	height = gtk_widget_get_allocated_height(list->widget);
	list->width = width;
	list->height = height;

	/* Background color */
	GdkColor color;
	style = gtk_widget_get_style(list->widget);
	color = style->bg[GTK_STATE_NORMAL];

	/* Fill it with labels */
	x = 0;
	y = 0;
	count = list->elem_list->count;
	for (i = 0; i < count; i++)
	{
		int last;

		struct vi_list_item_t *item;
		void *elem;

		char str1[MAX_STRING_SIZE];
		char str2[MAX_STRING_SIZE];
		char *comma;

		GtkWidget *label;
		GtkWidget *event_box;

		PangoAttrList *attrs;
		PangoAttribute *size_attr;

		GtkRequisition req;

		/* Create list item */
		item = vi_list_item_create();

		/* Get current element */
		elem = list_get(list->elem_list, i);

		/* Create label */
		comma = i < count - 1 ? "," : "";
		if (list->get_elem_name)
			(*list->get_elem_name)(elem, str1, sizeof str1);
		else
			snprintf(str1, sizeof str1, "item-%d", i);
		snprintf(str2, sizeof str2, "%s%s", str1, comma);
		label = gtk_label_new(str2);
		gtk_label_set_use_markup(GTK_LABEL(label), TRUE);

		/* Set label font attributes */
		attrs = pango_attr_list_new();
		size_attr = pango_attr_size_new_absolute(list->text_size << 10);
		pango_attr_list_insert(attrs, size_attr);
		gtk_label_set_attributes(GTK_LABEL(label), attrs);

		/* Get position */
		gtk_widget_get_preferred_size(label, &req, NULL);
		last = 0;
		if (x > 0 && x + req.width >= width)
		{
			x = 0;
			y += req.height;
			if (y + 2 * req.height >= height && i < count - 1)
			{
				snprintf(str1, sizeof str1, "+ %d more", count - i);
				gtk_label_set_text(GTK_LABEL(label), str1);
				gtk_widget_get_preferred_size(label, &req, NULL);
				last = 1;
			}
		}

		/* Create event box */
		event_box = gtk_event_box_new();
		gtk_widget_modify_bg(event_box, GTK_STATE_NORMAL, &color);
		gtk_container_add(GTK_CONTAINER(event_box), label);
		gtk_widget_add_events(event_box, GDK_ENTER_NOTIFY_MASK |
			GDK_LEAVE_NOTIFY_MASK | GDK_BUTTON_PRESS_MASK);

		/* Events for event box */
		g_signal_connect(G_OBJECT(event_box), "enter-notify-event",
			G_CALLBACK(vi_list_item_enter_notify_event), item);
		g_signal_connect(G_OBJECT(event_box), "leave-notify-event",
			G_CALLBACK(vi_list_item_leave_notify_event), item);
		if (last)
			g_signal_connect(G_OBJECT(event_box), "button-press-event",
				G_CALLBACK(vi_list_item_more_press_event), item);
		else
			g_signal_connect(G_OBJECT(event_box), "button-press-event",
				G_CALLBACK(vi_list_item_button_press_event), item);

		/* Insert event box in 'list' layout */
		gtk_layout_put(GTK_LAYOUT(list->widget), event_box, x, y);

		/* Initialize item */
		item->list = list;
		item->elem = elem;
		item->event_box = event_box;
		item->label = label;
		list_add(list->item_list, item);

		/* Advance */
		x += req.width + 5;
		if (last)
			break;
	}

	/* Show all new widgets */
	gtk_widget_show_all(list->widget);
	gtk_container_check_resize(GTK_CONTAINER(list->widget));
}
예제 #27
0
gboolean yatla_layout_load_layout (YatlaLayout* self, YatlaSidebar* sidebar, const gchar* list_name) {
	gboolean result = FALSE;
	Block4Data* _data4_;
	YatlaSidebar* _tmp0_ = NULL;
	YatlaSidebar* _tmp1_ = NULL;
	const gchar* _tmp2_ = NULL;
	gchar* _tmp3_ = NULL;
	const gchar* _tmp4_ = NULL;
	gchar* _tmp5_ = NULL;
	GtkBox* _tmp6_ = NULL;
	const gchar* _tmp7_ = NULL;
	GtkLabel* _tmp8_ = NULL;
	GtkLabel* _tmp9_ = NULL;
	GtkLabel* _tmp10_ = NULL;
	GtkLabel* _tmp11_ = NULL;
	const gchar* _tmp12_ = NULL;
	gchar* _tmp13_ = NULL;
	gchar* _tmp14_ = NULL;
	GtkBox* _tmp15_ = NULL;
	GtkLabel* _tmp16_ = NULL;
	GtkBox* _tmp17_ = NULL;
	GtkEntry* _tmp18_ = NULL;
	GtkEntry* _tmp19_ = NULL;
	GtkEntry* _tmp20_ = NULL;
	GtkBox* _tmp21_ = NULL;
	GtkEntry* _tmp22_ = NULL;
	GtkBox* _tmp23_ = NULL;
	gint list_index = 0;
	YatlaSidebar* _tmp24_ = NULL;
	GList* _tmp25_ = NULL;
	gint task_index = 0;
	guint the_longest_task = 0U;
	GtkBox* _tmp122_ = NULL;
	GtkBox* _tmp123_ = NULL;
	GtkBox* _tmp124_ = NULL;
	guint _tmp125_ = 0U;
	GeeTreeMap* _tmp126_ = NULL;
	GeeCollection* _tmp127_ = NULL;
	GeeCollection* _tmp128_ = NULL;
	GeeCollection* _tmp129_ = NULL;
	gint _tmp130_ = 0;
	gint _tmp131_ = 0;
	GtkEntry* _tmp132_ = NULL;
	GeeMapIterator* map_iterator = NULL;
	GeeTreeMap* _tmp133_ = NULL;
	GeeMapIterator* _tmp134_ = NULL;
	g_return_val_if_fail (self != NULL, FALSE);
	g_return_val_if_fail (sidebar != NULL, FALSE);
	g_return_val_if_fail (list_name != NULL, FALSE);
	_data4_ = g_slice_new0 (Block4Data);
	_data4_->_ref_count_ = 1;
	_data4_->self = g_object_ref (self);
	_tmp0_ = sidebar;
	_tmp1_ = _g_object_ref0 (_tmp0_);
	_g_object_unref0 (_data4_->sidebar);
	_data4_->sidebar = _tmp1_;
	_tmp2_ = list_name;
	_tmp3_ = g_strdup (_tmp2_);
	_g_free0 (_data4_->list_name);
	_data4_->list_name = _tmp3_;
	_tmp4_ = _data4_->list_name;
	_tmp5_ = g_strdup (_tmp4_);
	_g_free0 (self->_name);
	self->_name = _tmp5_;
	_tmp6_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
	g_object_ref_sink (_tmp6_);
	_g_object_unref0 (self->_top_box1);
	self->_top_box1 = _tmp6_;
	_tmp7_ = _data4_->list_name;
	_tmp8_ = (GtkLabel*) gtk_label_new (_tmp7_);
	g_object_ref_sink (_tmp8_);
	_g_object_unref0 (self->_list_name);
	self->_list_name = _tmp8_;
	_tmp9_ = self->_list_name;
	gtk_label_set_use_markup (_tmp9_, TRUE);
	_tmp10_ = self->_list_name;
	_tmp11_ = self->_list_name;
	_tmp12_ = gtk_label_get_text (_tmp11_);
	_tmp13_ = g_strdup_printf ("<span font='14'><b>%s</b></span>", _tmp12_);
	_tmp14_ = _tmp13_;
	gtk_label_set_markup (_tmp10_, _tmp14_);
	_g_free0 (_tmp14_);
	_tmp15_ = self->_top_box1;
	_tmp16_ = self->_list_name;
	gtk_box_pack_start (_tmp15_, (GtkWidget*) _tmp16_, TRUE, TRUE, (guint) 0);
	_tmp17_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
	g_object_ref_sink (_tmp17_);
	_g_object_unref0 (self->_top_box2);
	self->_top_box2 = _tmp17_;
	_tmp18_ = (GtkEntry*) gtk_entry_new ();
	g_object_ref_sink (_tmp18_);
	_g_object_unref0 (self->new_task_entry);
	self->new_task_entry = _tmp18_;
	_tmp19_ = self->new_task_entry;
	gtk_entry_set_placeholder_text (_tmp19_, "Add new task");
	_tmp20_ = self->new_task_entry;
	gtk_entry_set_icon_from_stock (_tmp20_, GTK_ENTRY_ICON_SECONDARY, "gtk-edit");
	_tmp21_ = self->_top_box2;
	_tmp22_ = self->new_task_entry;
	gtk_box_pack_start (_tmp21_, (GtkWidget*) _tmp22_, TRUE, TRUE, (guint) 0);
	_tmp23_ = (GtkBox*) gtk_box_new (GTK_ORIENTATION_VERTICAL, 10);
	g_object_ref_sink (_tmp23_);
	_g_object_unref0 (self->_tasks_box);
	self->_tasks_box = _tmp23_;
	list_index = 0;
	_tmp24_ = _data4_->sidebar;
	_tmp25_ = _tmp24_->sidebar_list;
	{
		GList* list_collection = NULL;
		GList* list_it = NULL;
		list_collection = _tmp25_;
		for (list_it = list_collection; list_it != NULL; list_it = list_it->next) {
			YatlaList* _tmp26_ = NULL;
			YatlaList* list = NULL;
			_tmp26_ = _g_object_ref0 ((YatlaList*) list_it->data);
			list = _tmp26_;
			{
				YatlaList* _tmp27_ = NULL;
				const gchar* _tmp28_ = NULL;
				const gchar* _tmp29_ = NULL;
				const gchar* _tmp30_ = NULL;
				gint _tmp31_ = 0;
				_tmp27_ = list;
				_tmp28_ = yatla_list_get_name (_tmp27_);
				_tmp29_ = _tmp28_;
				_tmp30_ = _data4_->list_name;
				if (g_strcmp0 (_tmp29_, _tmp30_) == 0) {
					_g_object_unref0 (list);
					break;
				}
				_tmp31_ = list_index;
				list_index = _tmp31_ + 1;
				_g_object_unref0 (list);
			}
		}
	}
	task_index = 0;
	the_longest_task = (guint) 0;
	while (TRUE) {
		Block5Data* _data5_;
		gint _tmp32_ = 0;
		YatlaSidebar* _tmp33_ = NULL;
		GList* _tmp34_ = NULL;
		gint _tmp35_ = 0;
		gconstpointer _tmp36_ = NULL;
		guint _tmp37_ = 0U;
		guint _tmp38_ = 0U;
		gint task_id = 0;
		YatlaSidebar* _tmp39_ = NULL;
		GList* _tmp40_ = NULL;
		gint _tmp41_ = 0;
		gconstpointer _tmp42_ = NULL;
		GList* _tmp43_ = NULL;
		gint _tmp44_ = 0;
		gconstpointer _tmp45_ = NULL;
		gint _tmp46_ = 0;
		gint _tmp47_ = 0;
		gchar* task_name = NULL;
		YatlaSidebar* _tmp48_ = NULL;
		GList* _tmp49_ = NULL;
		gint _tmp50_ = 0;
		gconstpointer _tmp51_ = NULL;
		GList* _tmp52_ = NULL;
		gint _tmp53_ = 0;
		gconstpointer _tmp54_ = NULL;
		const gchar* _tmp55_ = NULL;
		const gchar* _tmp56_ = NULL;
		gchar* _tmp57_ = NULL;
		YatlaSidebar* _tmp58_ = NULL;
		GList* _tmp59_ = NULL;
		gint _tmp60_ = 0;
		gconstpointer _tmp61_ = NULL;
		GList* _tmp62_ = NULL;
		gint _tmp63_ = 0;
		gconstpointer _tmp64_ = NULL;
		const gchar* _tmp65_ = NULL;
		const gchar* _tmp66_ = NULL;
		gchar* _tmp67_ = NULL;
		GDateTime* task_date = NULL;
		YatlaSidebar* _tmp68_ = NULL;
		GList* _tmp69_ = NULL;
		gint _tmp70_ = 0;
		gconstpointer _tmp71_ = NULL;
		GList* _tmp72_ = NULL;
		gint _tmp73_ = 0;
		gconstpointer _tmp74_ = NULL;
		GDateTime* _tmp75_ = NULL;
		GDateTime* _tmp76_ = NULL;
		gboolean task_is_done = FALSE;
		YatlaSidebar* _tmp87_ = NULL;
		GList* _tmp88_ = NULL;
		gint _tmp89_ = 0;
		gconstpointer _tmp90_ = NULL;
		GList* _tmp91_ = NULL;
		gint _tmp92_ = 0;
		gconstpointer _tmp93_ = NULL;
		gboolean _tmp94_ = FALSE;
		gboolean _tmp95_ = FALSE;
		YatlaTask* task = NULL;
		const gchar* _tmp96_ = NULL;
		const gchar* _tmp97_ = NULL;
		GDateTime* _tmp98_ = NULL;
		gboolean _tmp99_ = FALSE;
		YatlaTask* _tmp100_ = NULL;
		YatlaTask* _tmp101_ = NULL;
		gint _tmp102_ = 0;
		const gchar* _tmp103_ = NULL;
		gint _tmp104_ = 0;
		gint _tmp105_ = 0;
		guint _tmp106_ = 0U;
		GtkCheckButton* checkBox = NULL;
		const gchar* _tmp110_ = NULL;
		GtkCheckButton* _tmp111_ = NULL;
		GtkCheckButton* _tmp112_ = NULL;
		gboolean _tmp113_ = FALSE;
		GtkCheckButton* _tmp114_ = NULL;
		GtkCheckButton* _tmp115_ = NULL;
		GeeTreeMap* _tmp116_ = NULL;
		YatlaTask* _tmp117_ = NULL;
		GtkCheckButton* _tmp118_ = NULL;
		GtkBox* _tmp119_ = NULL;
		GtkCheckButton* _tmp120_ = NULL;
		gint _tmp121_ = 0;
		_data5_ = g_slice_new0 (Block5Data);
		_data5_->_ref_count_ = 1;
		_data5_->_data4_ = block4_data_ref (_data4_);
		_tmp32_ = task_index;
		_tmp33_ = _data4_->sidebar;
		_tmp34_ = _tmp33_->sidebar_list;
		_tmp35_ = list_index;
		_tmp36_ = g_list_nth_data (_tmp34_, (guint) _tmp35_);
		_tmp37_ = yatla_list_get_size ((YatlaList*) _tmp36_);
		_tmp38_ = _tmp37_;
		if (!(((guint) _tmp32_) != _tmp38_)) {
			block5_data_unref (_data5_);
			_data5_ = NULL;
			break;
		}
		_tmp39_ = _data4_->sidebar;
		_tmp40_ = _tmp39_->sidebar_list;
		_tmp41_ = list_index;
		_tmp42_ = g_list_nth_data (_tmp40_, (guint) _tmp41_);
		_tmp43_ = ((YatlaList*) _tmp42_)->tasks;
		_tmp44_ = task_index;
		_tmp45_ = g_list_nth_data (_tmp43_, (guint) _tmp44_);
		_tmp46_ = yatla_task_get_id ((YatlaTask*) _tmp45_);
		_tmp47_ = _tmp46_;
		task_id = _tmp47_;
		_tmp48_ = _data4_->sidebar;
		_tmp49_ = _tmp48_->sidebar_list;
		_tmp50_ = list_index;
		_tmp51_ = g_list_nth_data (_tmp49_, (guint) _tmp50_);
		_tmp52_ = ((YatlaList*) _tmp51_)->tasks;
		_tmp53_ = task_index;
		_tmp54_ = g_list_nth_data (_tmp52_, (guint) _tmp53_);
		_tmp55_ = yatla_task_get_name ((YatlaTask*) _tmp54_);
		_tmp56_ = _tmp55_;
		_tmp57_ = g_strdup (_tmp56_);
		task_name = _tmp57_;
		_tmp58_ = _data4_->sidebar;
		_tmp59_ = _tmp58_->sidebar_list;
		_tmp60_ = list_index;
		_tmp61_ = g_list_nth_data (_tmp59_, (guint) _tmp60_);
		_tmp62_ = ((YatlaList*) _tmp61_)->tasks;
		_tmp63_ = task_index;
		_tmp64_ = g_list_nth_data (_tmp62_, (guint) _tmp63_);
		_tmp65_ = yatla_task_get_note ((YatlaTask*) _tmp64_);
		_tmp66_ = _tmp65_;
		_tmp67_ = g_strdup (_tmp66_);
		_data5_->task_note = _tmp67_;
		_tmp68_ = _data4_->sidebar;
		_tmp69_ = _tmp68_->sidebar_list;
		_tmp70_ = list_index;
		_tmp71_ = g_list_nth_data (_tmp69_, (guint) _tmp70_);
		_tmp72_ = ((YatlaList*) _tmp71_)->tasks;
		_tmp73_ = task_index;
		_tmp74_ = g_list_nth_data (_tmp72_, (guint) _tmp73_);
		_tmp75_ = yatla_task_get_date ((YatlaTask*) _tmp74_);
		_tmp76_ = _tmp75_;
		if (_tmp76_ != NULL) {
			YatlaSidebar* _tmp77_ = NULL;
			GList* _tmp78_ = NULL;
			gint _tmp79_ = 0;
			gconstpointer _tmp80_ = NULL;
			GList* _tmp81_ = NULL;
			gint _tmp82_ = 0;
			gconstpointer _tmp83_ = NULL;
			GDateTime* _tmp84_ = NULL;
			GDateTime* _tmp85_ = NULL;
			GDateTime* _tmp86_ = NULL;
			_tmp77_ = _data4_->sidebar;
			_tmp78_ = _tmp77_->sidebar_list;
			_tmp79_ = list_index;
			_tmp80_ = g_list_nth_data (_tmp78_, (guint) _tmp79_);
			_tmp81_ = ((YatlaList*) _tmp80_)->tasks;
			_tmp82_ = task_index;
			_tmp83_ = g_list_nth_data (_tmp81_, (guint) _tmp82_);
			_tmp84_ = yatla_task_get_date ((YatlaTask*) _tmp83_);
			_tmp85_ = _tmp84_;
			_tmp86_ = _g_date_time_ref0 (_tmp85_);
			_g_date_time_unref0 (task_date);
			task_date = _tmp86_;
		} else {
			_g_date_time_unref0 (task_date);
			task_date = NULL;
		}
		_tmp87_ = _data4_->sidebar;
		_tmp88_ = _tmp87_->sidebar_list;
		_tmp89_ = list_index;
		_tmp90_ = g_list_nth_data (_tmp88_, (guint) _tmp89_);
		_tmp91_ = ((YatlaList*) _tmp90_)->tasks;
		_tmp92_ = task_index;
		_tmp93_ = g_list_nth_data (_tmp91_, (guint) _tmp92_);
		_tmp94_ = yatla_task_get_is_done ((YatlaTask*) _tmp93_);
		_tmp95_ = _tmp94_;
		task_is_done = _tmp95_;
		_tmp96_ = task_name;
		_tmp97_ = _data5_->task_note;
		_tmp98_ = task_date;
		_tmp99_ = task_is_done;
		_tmp100_ = yatla_task_new (_tmp96_, _tmp97_, _tmp98_, _tmp99_);
		task = _tmp100_;
		_tmp101_ = task;
		_tmp102_ = task_id;
		yatla_task_set_id (_tmp101_, _tmp102_);
		_tmp103_ = task_name;
		_tmp104_ = strlen (_tmp103_);
		_tmp105_ = _tmp104_;
		_tmp106_ = the_longest_task;
		if (((guint) _tmp105_) > _tmp106_) {
			const gchar* _tmp107_ = NULL;
			gint _tmp108_ = 0;
			gint _tmp109_ = 0;
			_tmp107_ = task_name;
			_tmp108_ = strlen (_tmp107_);
			_tmp109_ = _tmp108_;
			the_longest_task = (guint) _tmp109_;
		}
		_tmp110_ = task_name;
		_tmp111_ = (GtkCheckButton*) gtk_check_button_new_with_label (_tmp110_);
		g_object_ref_sink (_tmp111_);
		checkBox = _tmp111_;
		_tmp112_ = checkBox;
		_tmp113_ = task_is_done;
		gtk_toggle_button_set_active ((GtkToggleButton*) _tmp112_, _tmp113_);
		_tmp114_ = checkBox;
		gtk_widget_set_has_tooltip ((GtkWidget*) _tmp114_, TRUE);
		_tmp115_ = checkBox;
		g_signal_connect_data ((GtkWidget*) _tmp115_, "query-tooltip", (GCallback) ____lambda4__gtk_widget_query_tooltip, block5_data_ref (_data5_), (GClosureNotify) block5_data_unref, 0);
		_tmp116_ = self->tasks;
		_tmp117_ = task;
		_tmp118_ = checkBox;
		gee_abstract_map_set ((GeeAbstractMap*) _tmp116_, _tmp117_, _tmp118_);
		_tmp119_ = self->_tasks_box;
		_tmp120_ = checkBox;
		gtk_box_pack_start (_tmp119_, (GtkWidget*) _tmp120_, TRUE, TRUE, (guint) 0);
		_tmp121_ = task_index;
		task_index = _tmp121_ + 1;
		_g_object_unref0 (checkBox);
		_g_object_unref0 (task);
		_g_date_time_unref0 (task_date);
		_g_free0 (task_name);
		block5_data_unref (_data5_);
		_data5_ = NULL;
	}
	_tmp122_ = self->_top_box1;
	gtk_layout_put ((GtkLayout*) self, (GtkWidget*) _tmp122_, 25, 20);
	_tmp123_ = self->_top_box2;
	gtk_layout_put ((GtkLayout*) self, (GtkWidget*) _tmp123_, 20, 40);
	_tmp124_ = self->_tasks_box;
	gtk_layout_put ((GtkLayout*) self, (GtkWidget*) _tmp124_, 20, 100);
	_tmp125_ = the_longest_task;
	g_object_set ((GtkLayout*) self, "width", 65 + (_tmp125_ * 7), NULL);
	_tmp126_ = self->tasks;
	_tmp127_ = gee_abstract_map_get_values ((GeeMap*) _tmp126_);
	_tmp128_ = _tmp127_;
	_tmp129_ = _tmp128_;
	_tmp130_ = gee_collection_get_size (_tmp129_);
	_tmp131_ = _tmp130_;
	g_object_set ((GtkLayout*) self, "height", (guint) (100 + (_tmp131_ * 30)), NULL);
	_g_object_unref0 (_tmp129_);
	gtk_widget_show_all ((GtkWidget*) self);
	_tmp132_ = self->new_task_entry;
	g_signal_connect_data (_tmp132_, "icon-press", (GCallback) ___lambda5__gtk_entry_icon_press, block4_data_ref (_data4_), (GClosureNotify) block4_data_unref, 0);
	_tmp133_ = self->tasks;
	_tmp134_ = gee_abstract_map_map_iterator ((GeeAbstractMap*) _tmp133_);
	map_iterator = _tmp134_;
	while (TRUE) {
		Block6Data* _data6_;
		GeeMapIterator* _tmp135_ = NULL;
		gboolean _tmp136_ = FALSE;
		GeeMapIterator* _tmp137_ = NULL;
		gpointer _tmp138_ = NULL;
		GeeMapIterator* _tmp139_ = NULL;
		gpointer _tmp140_ = NULL;
		GtkCheckButton* _tmp141_ = NULL;
		_data6_ = g_slice_new0 (Block6Data);
		_data6_->_ref_count_ = 1;
		_data6_->_data4_ = block4_data_ref (_data4_);
		_tmp135_ = map_iterator;
		_tmp136_ = gee_map_iterator_next (_tmp135_);
		if (!_tmp136_) {
			block6_data_unref (_data6_);
			_data6_ = NULL;
			break;
		}
		_tmp137_ = map_iterator;
		_tmp138_ = gee_map_iterator_get_value (_tmp137_);
		_data6_->checkBox = (GtkCheckButton*) _tmp138_;
		_tmp139_ = map_iterator;
		_tmp140_ = gee_map_iterator_get_key (_tmp139_);
		_data6_->task = (YatlaTask*) _tmp140_;
		_tmp141_ = _data6_->checkBox;
		g_signal_connect_data ((GObject*) _tmp141_, "notify::active", (GCallback) ____lambda11__g_object_notify, block6_data_ref (_data6_), (GClosureNotify) block6_data_unref, 0);
		block6_data_unref (_data6_);
		_data6_ = NULL;
	}
	result = TRUE;
	_g_object_unref0 (map_iterator);
	block4_data_unref (_data4_);
	_data4_ = NULL;
	return result;
}
예제 #28
0
int load_host_buttons(topview * t, Agraph_t * g, glCompSet * s)
{
    GtkLayout *layout;
    int btncount = 0;
    int i = 0;
    char *str;
    char hostbtncaption[50];
    char hostbtnregex[50];
    char hostbtncolorR[50];
    char hostbtncolorG[50];
    char hostbtncolorB[50];
    char hostbtncolorA[50];
    int X = 10;
    int Y = 25;
    GdkColor color;
    glCompPanel *p;
    glCompButton *b;

    layout =
	(GtkLayout *) glade_xml_get_widget(xml, "frmHostSelectionFixed");
    str = '\0';
    str = agget(g, "hostbtncount");
    if (str)
	btncount = atoi(str);

//      Graph [hostbtncaption1="AT&T",hostbtnregex1="*.ATT*",hostbtncolorR1="1",hostbtncolorG1="0",hostbtncolorB1="0",hostbtncolorA1="1"];

    t->TopviewData->hostregex = N_GNEW(btncount, char *);
    t->TopviewData->gtkhostbtn = N_GNEW(btncount, GtkButton *);
    t->TopviewData->gtkhostcolor = N_GNEW(btncount, GtkColorButton *);
    t->TopviewData->gtkhostbtncount = btncount;
    if (btncount > 0) {
	p = glCompPanelNew(25, 75, 165, 400);
	p->data = 2;		//data panel
	p->color.R = (float) 0.80;
	p->color.B = (float) 0.2;
	glCompSetAddPanel(s, p);
    } else
	return 0;

    for (i = 0; i < btncount; i++) {
	sprintf(hostbtncaption, "hostbtncaption%i", i);
	sprintf(hostbtnregex, "hostbtnregex%i", i);
	sprintf(hostbtncolorR, "hostbtncolorR%i", i);
	sprintf(hostbtncolorG, "hostbtncolorG%i", i);
	sprintf(hostbtncolorB, "hostbtncolorB%i", i);
	sprintf(hostbtncolorA, "hostbtncolorA%i", i);
	agget(g, hostbtncaption),
	    agget(g, hostbtnregex),
	    agget(g, hostbtncolorR),
	    agget(g, hostbtncolorG),
	    agget(g, hostbtncolorB), agget(g, hostbtncolorA);
	t->TopviewData->hostregex[i] = agget(g, hostbtnregex);

	b = glCompButtonNew((GLfloat) 5,
			    (GLfloat) 7 + ((GLfloat) i +
					   (GLfloat) 1) * (GLfloat) 36,
			    (GLfloat) 150, (GLfloat) 35, agget(g,
							       hostbtncaption),
			    '\0', 0, 0);
	b->color.R = (float) atof(agget(g, hostbtncolorR));
	b->color.G = (float) atof(agget(g, hostbtncolorG));
	b->color.B = (float) atof(agget(g, hostbtncolorB));
	b->color.A = (float) 1;
	b->panel = p;
	b->groupid = -1;
	b->callbackfunc = glhost_button_clicked_Slot;
	b->data = i;
	glCompSetAddButton(s, b);

	t->TopviewData->gtkhostbtn[i] = (GtkButton *)
	    gtk_button_new_with_label(agget(g, hostbtncaption));
	g_signal_connect((gpointer) t->TopviewData->gtkhostbtn[i],
			 "clicked", G_CALLBACK(host_button_clicked_Slot),
			 (gpointer) i);

	color.blue = 65535 * atoi(agget(g, hostbtncolorB));
	color.red = 65535 * atoi(agget(g, hostbtncolorR));
	color.green = 65535 * atoi(agget(g, hostbtncolorG));

	t->TopviewData->gtkhostcolor[i] =
	    (GtkColorButton *) gtk_color_button_new_with_color(&color);

	gtk_color_button_set_alpha((GtkColorButton *) t->TopviewData->
				   gtkhostbtn[i],
				   65535 * atoi(agget(g, hostbtncolorA)));


	gtk_layout_put(layout, (GtkWidget *) t->TopviewData->gtkhostbtn[i],
		       X, Y);
	gtk_widget_set_size_request((GtkWidget *) t->TopviewData->
				    gtkhostbtn[i], 200, 35);

	gtk_layout_put(layout,
		       (GtkWidget *) t->TopviewData->gtkhostcolor[i],
		       X + 225, Y);
	gtk_widget_set_size_request((GtkWidget *) t->TopviewData->
				    gtkhostcolor[i], 40, 35);

	gtk_widget_show((GtkWidget *) t->TopviewData->gtkhostbtn[i]);
	gtk_widget_show((GtkWidget *) t->TopviewData->gtkhostcolor[i]);
	Y = Y + 40;
	t->TopviewData->hostactive[i] = 0;
    }
    p->height = (GLfloat) 15 + (GLfloat) (btncount + 1) * (GLfloat) 36;
    for (i = 0; i < btncount; i++) {
	prepare_nodes_for_groups(t, t->TopviewData, i);
    }
    return 1;
}
예제 #29
0
파일: main.c 프로젝트: dumorte/Fid_Project
int main(int argc, char **argv){
	gtk_init (&argc, &argv);

	GtkWidget *p_window;
	GdkPixbuf *Pixbuf; 
	GError *error=NULL;

	/* Creation de la fenetre principale de notre application */
	p_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
	gtk_window_set_position(GTK_WINDOW(p_window), GTK_WIN_POS_CENTER);
	gtk_window_set_title(GTK_WINDOW(p_window),"Face Identifier Project");
	gtk_window_set_default_size(GTK_WINDOW(p_window),800,500);
	Pixbuf = gdk_pixbuf_new_from_file("logo.jpeg",&error);
	gtk_window_set_icon(GTK_WINDOW(p_window),Pixbuf);
	GdkGeometry hints;
	hints.min_width = 800;
	hints.max_width = 800;
	hints.min_height = 500;
	hints.max_height = 500;

	gtk_window_set_geometry_hints(
			GTK_WINDOW(p_window),
			p_window,
			&hints,
			(GdkWindowHints)(GDK_HINT_MIN_SIZE | GDK_HINT_MAX_SIZE));

	/* Creation des buttons */
	GtkWidget *p_button1= gtk_button_new_with_label("Search");
	gtk_widget_set_size_request(p_button1,120,90);
	GtkWidget *p_button2= gtk_button_new_with_label("Identify");
	gtk_widget_set_size_request(p_button2,120,90);
	GtkWidget *p_button3= gtk_button_new_with_label("Add");
	gtk_widget_set_size_request(p_button3,120,90);

	/* Insertion des boutons */
	g_signal_connect (G_OBJECT (p_button1), "clicked", G_CALLBACK (cb_open), NULL);
	g_signal_connect (G_OBJECT (p_button2), "clicked", G_CALLBACK (face_detection), NULL);
	g_signal_connect (G_OBJECT (p_button3), "clicked", G_CALLBACK (cb_add), NULL);

	layout = gtk_layout_new(NULL, NULL);
	GtkWidget *backgrd = gtk_image_new_from_file("backgroundUI.jpg");
	GtkWidget *box = gtk_box_new(GTK_ORIENTATION_VERTICAL, 5);
	GtkWidget *scrollbar = gtk_scrolled_window_new(NULL, NULL);
	
	DIR* FD = opendir ("./DataBase");
	struct dirent* in_file;

	GtkWidget *ImgScr;
	GdkPixbuf *Pbx;
	GtkWidget *Label;

	if (NULL != FD) 
	{
		while ((in_file =readdir(FD)))
		{
			if (!strcmp (in_file->d_name, "."))
				continue;
			if (!strcmp (in_file->d_name, ".."))    
				continue;

			Pbx = gdk_pixbuf_new_from_file_at_scale (concat("DataBase/",in_file->d_name),220,150,TRUE,NULL);
			ImgScr = gtk_image_new_from_pixbuf(Pbx);

			Label = gtk_label_new (remove_after_dot(in_file->d_name));
			g_object_unref (Pbx);
			gtk_box_pack_start(GTK_BOX(box), ImgScr, FALSE, FALSE, 3);
			gtk_box_pack_start(GTK_BOX(box), Label, FALSE, FALSE, 3);
		}
		(void) closedir (FD);
	}

	gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrollbar),GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);

	gtk_widget_set_size_request(scrollbar, 253,398);
	gtk_container_add(GTK_CONTAINER(scrollbar), box);

	gtk_layout_put(GTK_LAYOUT(layout), backgrd, 0, 0);

	gtk_container_add(GTK_CONTAINER(p_window), layout);
	gtk_layout_put(GTK_LAYOUT (layout), scrollbar, 548,0);

	gtk_layout_put (GTK_LAYOUT (layout), p_button1, 250, 405);
	gtk_layout_put (GTK_LAYOUT (layout), p_button2, 100, 405);
	gtk_layout_put (GTK_LAYOUT (layout), p_button3, 400, 405);

	g_signal_connect(G_OBJECT(p_window), "destroy",
			G_CALLBACK(gtk_main_quit), NULL);
	/* Affichage de la fenetre principale */
	gtk_widget_show_all (p_window); 
	/* Lancement de la boucle principale */
	gtk_main ();
	return EXIT_SUCCESS;

	return 0;
}
예제 #30
0
static void
create_layout (GtkWidget *vbox)
{
  GtkAdjustment *hadjustment, *vadjustment;
  GtkLayout *layout;
  GtkWidget *layout_widget;
  GtkWidget *scrolledwindow;
  GtkWidget *button;
  gchar buf[16];
  gint i, j;

  scrolledwindow = gtk_scrolled_window_new (NULL, NULL);
  gtk_scrolled_window_set_shadow_type (GTK_SCROLLED_WINDOW (scrolledwindow),
				       GTK_SHADOW_IN);
  gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW (scrolledwindow),
				     GTK_CORNER_TOP_RIGHT);

  gtk_box_pack_start (GTK_BOX (vbox), scrolledwindow, TRUE, TRUE, 0);

  layout_widget = gtk_layout_new (NULL, NULL);
  layout = GTK_LAYOUT (layout_widget);
  gtk_container_add (GTK_CONTAINER (scrolledwindow), layout_widget);

  /* We set step sizes here since GtkLayout does not set
   * them itself.
   */
  hadjustment = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE (layout));
  vadjustment = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (layout));
  gtk_adjustment_set_step_increment (hadjustment, 10.0);
  gtk_adjustment_set_step_increment (vadjustment, 10.0);
  gtk_scrollable_set_hadjustment (GTK_SCROLLABLE (layout), hadjustment);
  gtk_scrollable_set_vadjustment (GTK_SCROLLABLE (layout), vadjustment);

  gtk_widget_set_events (layout_widget, GDK_EXPOSURE_MASK);
  g_signal_connect (layout, "draw",
		    G_CALLBACK (layout_draw_handler),
                    NULL);

  gtk_layout_set_size (layout, 1600, 128000);

  for (i = 0 ; i < 16 ; i++)
    for (j = 0 ; j < 16 ; j++)
      {
	g_snprintf (buf, sizeof (buf), "Button %d, %d", i, j);

	if ((i + j) % 2)
	  button = gtk_button_new_with_label (buf);
	else
	  button = gtk_label_new (buf);

	gtk_layout_put (layout, button,	j * 100, i * 100);
      }

  for (i = 16; i < 1280; i++)
    {
      g_snprintf (buf, sizeof (buf), "Button %d, %d", i, 0);

      if (i % 2)
	button = gtk_button_new_with_label (buf);
      else
	button = gtk_label_new (buf);

      gtk_layout_put (layout, button, 0, i * 100);
    }

  layout_timeout = g_timeout_add (1000, scroll_layout, layout);
}