¸®´ª½º ±âŸ ÀÚ·á |
---|
Á¦¸ñ | gtk °Á #3 1998/07/10 (17:31) |
À̸§ | ±èÈ¿¿ø |
¹øÈ£ | 87 |
Á¶È¸ | 238 |
º»¹® |
******************** *** 5. WidgetÀÇ °³¿ä ******************** GTK¿¡¼ widgetÀ» ¸¸µå´Â ÀϹÝÀûÀÎ ÀýÂ÷´Â ´ÙÀ½°ú °°´Ù. 1. gtk_*_new - »õ·Î¿î widgetÀ» ¸¸µé±â À§ÇÑ ´Ù¾çÇÑ ÇÔ¼ö. ÀÌ°Íµé ¸ðµÎ´Â ¿©±â¼ ÀÚ¼¼È÷ º¸¿©Áú °ÍÀÌ´Ù. 2. Àû´çÇÑ Çڵ鷯¿¡ »ç¿ëÇÒ ¸ðµç ½Ã±×³ÎÀ» °áÇÕ½ÃŲ´Ù. 3. WidgetÀÇ ¼Ó¼ºÀ» ¼¼ÆÃÇÑ´Ù. 4. gtk_container_add()³ª gtk_box_pack_start()°°Àº Àû´çÇÑ ÇÔ¼ö¸¦ ½á¼ widgetÀ» ÄÁÅ×ÀÌ³Ê ¾ÈÀ¸·Î ÆÐÅ·ÇÑ´Ù. 5. gtk_widget_show()·Î widgetÀ» º¸ÀδÙ. gtk_widget_show()´Â ¿ì¸®°¡ widgetÀÇ ¼Ó¼ºÀ» ¸ðµÎ ¼¼ÆÃÇßÀ½À» GTK¿¡°Ô ¾Ë¸®°í, ±×°ÍÀº ÀÌÁ¦ º¸¿©Áú Áغñ°¡ ´Ù µÈ °ÍÀÌ´Ù. ¿ì¸®´Â ±×°ÍÀ» ´Ù½Ã º¸ÀÌÁö ¾Ê°Ô Çϱâ À§ÇØ gtk_widget_hide¸¦ ÀÌ¿ëÇÒ ¼öµµ ÀÖ´Ù. WidgetµéÀÌ º¸¿©Áö´Â ¼ø¼´Â Áß¿ä ÇÏÁö ¾Ê´Ù. ³»°¡ ¸»ÇÏ·Á´Â °ÍÀº, °¢°¢ÀÇ widgetÀÌ »ý°Ü³ª´Â ´ë·Î ½ºÅ©¸°¿¡ º¸¿©Áö°Ô ÇÏ´Â °Íº¸´Ù´Â, À©µµ¸¦ °¡Àå ³ªÁß¿¡ º¸¿©Áö°Ô Çؼ ¸ðµç ±¸¼º¿ä¼Ò°¡ Çѹø¿¡ Æ¢¾î¿À¸£°Ô ÇÏ´Â °ÍÀÌ ³´´Ù´Â °ÍÀÌ´Ù. gtk_widget_show()ÇÔ¼ö¸¦ ÀÌ¿ëÇÏ°Ô µÇ¸é ¾î¶² widget(À©µµ ¿ª½Ã ÇϳªÀÇ widgetÀÌ´Ù)ÀÇ ±¸¼º¿ä¼ÒµéÀº ±× À©µµ ÀÚü°¡ º¸¿©Áö±â Àü¿¡ ¸ÕÀú º¸¿©ÁöÁö ¾Ê´Â´Ù. *** *** 5-1. ij½ºÆÃ(ÀÚ·áÇüÀÇ °Á¦º¯È¯) *** °è¼ÓÇÏ¸é¼ ¾Ë°ÚÁö¸¸, GTK´Â ÀÚ·áÇüÀÇ °Á¦º¯È¯À» ½Ã½ºÅÛÀÌ´Ù. ÀÌ°ÍÀº ÁÖ¾îÁø ´ë»óÀ» ij½ºÆÃÇÏ´Â ´É·ÂÀ» Å×½ºÆ®ÇÒ ¶§³ª, ±×¸®°í ij½ºÆÃÀ» ½ÇÇàÇÒ ¶§³ª, ¾ðÁ¦³ª ¸ÅÅ©·Î¸¦ ÀÌ¿ëÇÔÀ¸·Î½á ÀÌ·ç¾îÁø´Ù. ¿ì¸®°¡ º¸°Ô µÉ ¸î¸îÀº ´ÙÀ½°ú °°´Ù. GTK_WIDGET(widget) GTK_OBJECT(object) GTK_SIGNAL_FUNC(function) GTK_CONTAINER(container) GTK_WINDOW(window) GTK_BOX(box) À̰͵éÀº ¸ðµÎ ÇÔ¼öÀÇ ÀÎÀÚµéÀ» ij½ºÆ®Çϱâ À§ÇØ ¾²¿´´Ù. ¿ì¸®´Â À̵éÀ» ¿¹Á¦µé¿¡¼ º¼ °ÍÀ̸ç, ÇÔ¼öÀÇ ¼±¾ðºÎ¸¦ º¸´Â °Í¸¸À¸·Î ±×µéÀ» ÀÌ¿ëÇÒ ¶§¸¦ ¸»ÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¾Æ·¡ÀÇ Å¬·¡½º °èÃþ±¸Á¶¿¡¼ º¼ ¼ö ÀÖµíÀÌ, ¸ðµç GtkWidgetµéÀº ±â¹ÝŬ·¡½ºÀÎ GtkObject¿¡¼ ÆÄ»ýµÈ °ÍÀÌ´Ù. ÀÌ°ÍÀº ¾î¶² ÇÔ¼ö°¡ object¸¦ ¿ä±¸ÇÒ ¶§ ¾îµð¼ µçÁö widgetÀ» ÀÌ¿ëÇÒ ¼ö ÀÖÀ½À» ÀǹÌÇÑ´Ù - ´Ü¼øÈ÷ GTK_OBJECT() ¸ÅÅ©·Î¸¦ ÀÌ¿ëÇؼ. ¿¹¸¦ µé¾î º¸ÀÚ. gtk_signal_connect(GTK_OBJECT(button), "clicked", GTK_SIGNAL_FUNC(callback_function), callback_data); ÀÌ°ÍÀº ¹öÆ°À» ÇϳªÀÇ object·Î ij½ºÆ®ÇÏ°í, ÇÔ¼ö Æ÷ÀÎÅ͸¦ callbackÀ¸·Î ij½ºÆ®ÇÑ´Ù. ¸¹Àº widgetµéÀº ¶ÇÇÑ ÄÁÅ×À̳ʴÙ. ¾Æ·¡ÀÇ Å¬·¡½º °èÃþ±¸Á¶¸¦ º¸¸é »ó´ç¼öÀÇ widgetµéÀÌ GtkContainer¿¡¼ ÆÄ»ýµÇ¾úÀ½À» ¾Ë ¼ö ÀÖÀ» °ÍÀÌ´Ù. ±×µé Áß ¾î¶² widgetÀÌ¶óµµ ÄÁÅ×À̳ʸ¦ ¿ä±¸ÇÏ´Â ÇÔ¼ö¿¡ ³Ñ°ÜÁÖ±â À§ÇØ GTK_CONTAINER ¸ÅÅ©·Î¸¦ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù. ºÒÇàÇÏ°Ôµµ ÀÌ·± ¸ÅÅ©·ÎµéÀº ÀÌ ¹®¼¿¡¼ ±¤¹üÀ§ÇÏ°Ô ´Ù·ç¾îÁöÁö ¾Ê¾Ò´Ù. ³ª´Â ¿©·¯ºÐÀÌ GTKÀÇ Çì´õÆÄÀϵéÀ» »ìÆ캸±â¸¦ ±ÇÇÑ´Ù. »ç½Ç, ÇÔ¼öÀÇ ¼±¾ðºÎ¸¦ º¸¸é¼ widgetÀÌ ¾î¶»°Ô ÀÛ¿ëÇÏ´ÂÁö °øºÎÇÏ´Â °ÍÀº ±×¸® ¾î·ÆÁö ¾Ê´Ù. *** *** 5-2. WidgetÀÇ °èÃþ±¸Á¶ *** ¿©·¯ºÐÀÌ Âü°íÇÒ ¼ö ÀÖµµ·Ï, ¿©±â widgetµéÀ» º¸ÃæÇϱâ À§ÇÑ Å¬·¡½º °èÃþ±¸Á¶ Æ®¸®°¡ ÀÖ´Ù. GtkObject +-- GtkData | \-- GtkAdjustment | \-- GtkWidget +-- GtkContainer | +-- GtkBin | | +-- GtkAlignment | | +-- GtkFrame | | | *-- GtkAspectFrame | | | | | +-- GtkItem | | | +-- GtkListItem | | | +-- GtkMenuItem | | | | +-- GtkCheckMenuItem | | | | *-- GtkRadioMenuItem | | | | | | | *-- GtkTreeItem | | | | | +-- GtkViewport | | \-- GtkWindow | | +-- GtkDialog | | \-- GtkFileSelection | | | +-- GtkBox | | +-- GtkHBox | | \-- GtkVBox | | +-- GtkColorSelection | | \-- GtkCurve | | | +-- GtkButton | | +-- GtkOptionMenu | | \-- GtkToggleButton | | \-- GtkCheckButton | | \-- GtkRadioButton | | | +-- GtkList | +-- GtkMenuShell | | +-- GtkMenu | | \-- GtkMenuBar | | | +-- GtkNotebook | +-- GtkScrolledWindow | +-- GtkTable | \-- GtkTree | +-- GtkDrawingArea +-- GtkEntry +-- GtkMisc | +-- GtkArrow | +-- GtkImage | +-- GtkLabel | \-- GtkPixmap | +-- GtkPreview +-- GtkProgressBar +-- GtkRange | +-- GtkScale | | +-- GtkHScale | | \-- GtkVScale | | | \-- GtkScrollbar | +-- GtkHScrollbar | \-- GtkVScrollbar | +-- GtkRuler | +-- GtkHRuler | \-- GtkVRuler | \-- GtkSeparator +-- GtkHSeparator \-- GtkVSeparator *** *** 5-3. À©µµ¿Í ¹«°üÇÑ widget *** ¿©±âÀÇ widgetµéÀº °ü·ÃµÈ À©µµ°¡ ¾ø´Â °ÍµéÀÌ´Ù. ¸¸¾à ¾î¶² À̺¥Æ®¸¦ Æ÷Âø ÇÏ·Á¸é GtkEventBox¸¦ ÀÌ¿ëÇØ¾ß ÇÒ °ÍÀÌ´Ù. "EventBox Widget"¿¡ ´ëÇÑ ºÎºÐÀ» ÂüÁ¶Ç϶ó. GtkAlignment GtkArrow GtkBin GtkBox GtkImage GtkItem GtkLabel GtkPaned GtkPixmap GtkScrolledWindow GtkSeparator GtkTable GtkViewport GtkAspectFrame GtkFrame GtkVPaned GtkHPaned GtkVBox GtkHBox GtkVSeparator GtkHSeparator ¿ì¸®´Â °¢°¢ÀÇ widgetÀ» Â÷·Ê·Î ½ÃÇèÇÏ°í ±×µéÀ» º¸ÀÏ ¼ö ÀÖ´Â °£´ÜÇÑ ÇÔ¼öµéÀ» ¸¸µé¾î °¡¸ç GTK¿¡ ´ëÇÑ Å½±¸¸¦ °è¼ÓÇÒ °ÍÀÌ´Ù. ¶Ç´Ù¸¥ ÈǸ¢ÇÑ ¼Ò½º´Â GTK¿Í ÇÔ²² ¹èÆ÷µÈ testgtk.c ÀÌ´Ù. ±×°ÍÀº gtk/testgtk.c ¿¡¼ ãÀ» ¼ö ÀÖÀ» °ÍÀÌ´Ù. ****************** *** 6. ¹öÆ° widget ****************** *** *** 6-1. º¸ÅëÀÇ ¹öÆ° *** ¿ì¸®´Â ¹öÆ°widget¿¡ ´ëÇؼ´Â °ÅÀÇ º¸¾Æ¿Ô´Ù. ±×°ÍÀº »ó´çÈ÷ °£´ÜÇÏ´Ù. ±×·±µ¥ ¹öÆ°À» ¸¸µå´Âµ¥´Â µÎ°¡Áö ¹æ¹ýÀÌ ÀÖ´Ù. ¿ì¸®´Â ¶óº§ÀÌ ÀÖ´Â ¹öÆ°À» ¸¸µé±â À§ÇØ gtk_button_new_with_labe()À» ÀÌ¿ëÇÒ ¼ö ÀÖ°í, ºó ¹öÆ°À» ¸¸µé±â À§ÇØ gtk_button_new()¸¦ ÀÌ¿ëÇÒ ¼öµµ ÀÖ´Ù. ±×·± ´ÙÀ½ ±×°Í¿¡ ¶óº§À» ºÙÀ̵çÁö ÇȽº¸ÊÀ» ºÙÀ̵çÁö ÇÏ´Â °ÍÀº ¿©·¯ºÐ¿¡°Ô ´Þ·ÁÀÖ´Ù. ±×·¸°Ô ÇÏ·Á¸é »õ·Î¿î ¹Ú½º¸¦ ¸¸µé°í gtk_box_pack_start·Î½á ÀÌ ¹Ú½º ¾È¿¡ ¿ì¸®ÀÇ object¸¦ ÆÐÅ·Çϸç, ±× ´ÙÀ½¿£ gtk_container_add·Î½á ±× ¹Ú½º¸¦ ¹öÆ° ¾ÈÀ¸·Î ÆÐÅ·ÇÏ¸é µÈ´Ù. ÀÌ ¿¹Á¦´Â gtk_button_new¸¦ ÀÌ¿ëÇÏ¿© ±×¸²°ú ¶óº§ÀÌ ÀÖ´Â ¹öÆ°À» ¸¸µç´Ù. ¹Ú½º¸¦ ¸¸µå´Â Äڵ尡 ´Ù¸¥ °Íµé·ÎºÎÅÍ ¶³¾îÁ® ³ª¿Í ÀÖÀ¸¸ç ¿©·¯ºÐÀÇ ÇÁ·Î±×·¥ ¿¡¼ ±×°ÍÀ» ÀÌ¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. #include <gtk/gtk.h> /* À̹ÌÁö¿Í ±×°Í¿¡ ÆÐÅ·µÈ ¶óº§À» °¡Áö°í ÀÖ´Â hbox¸¦ Çϳª ¸¸µç´Ù. * ±×¸®°í ±× ¹Ú½º¸¦ ¸®ÅÏÇÑ´Ù. */ GtkWidget *xpm_label_box (GtkWidget *parent, gchar *xpm_filename, gchar *label_text) { GtkWidget *box1; GtkWidget *label; GtkWidget *pixmapwid; GdkPixmap *pixmap; GdkBitmap *mask; GtkStyle *style; /* xpm°ú ¶óº§À» À§ÇÑ ¹Ú½º¸¦ ¸¸µç´Ù. */ box1 = gtk_hbox_new (FALSE, 0); gtk_container_border_width (GTK_CONTAINER (box1), 2); /* ¹öÆ°ÀÇ ½ºÅ¸ÀÏÀ» ÃëÇÑ´Ù.. background »ö±òÀ» ÃëÇÏ´Â °Í °°Àºµ¥, * ¾Æ´Ï¶ó¸é ´©±º°¡ ³ª¿¡°Ô Á¤Á¤ÇØ ÁÖ±æ ¹Ù¶õ´Ù. */ style = gtk_widget_get_style(parent); /* xpm ÆÄÀϷκÎÅÍ ÇȽº¸ÊÀ» ¸¸µç´Ù. */ pixmap = gdk_pixmap_create_from_xpm (parent->window, &mask, &style->bg[GTK_STATE_NORMAL], xpm_filename); pixmapwid = gtk_pixmap_new (pixmap, mask); /* ¹öÆ°À» À§ÇÑ ¶óº§À» ¸¸µç´Ù. */ label = gtk_label_new (label_text); /* ¹Ú½º ¾ÈÀ¸·Î ÇȽº¸Ê°ú ¶óº§À» ÆÐÅ·ÇØ ³Ö´Â´Ù. */ gtk_box_pack_start (GTK_BOX (box1), pixmapwid, FALSE, FALSE, 3); gtk_box_pack_start (GTK_BOX (box1), label, FALSE, FALSE, 3); gtk_widget_show(pixmapwid); gtk_widget_show(label); return (box1); } /* ¿ì¸®ÀÇ ÀüÇüÀûÀÎ callback ÇÔ¼ö´Ù. */ void callback (GtkWidget *widget, gpointer *data) { g_print ("Hello again - %s was pressed\n", (char *) data); } int main (int argc, char *argv[]) { /* GtkWidgetÀº widgetµéÀ» À§ÇÑ ±â¾ïÀå¼Ò Á¾·ù´Ù. */ GtkWidget *window; GtkWidget *button; GtkWidget *box1; gtk_init (&argc, &argv); /* À©µµ¸¦ Çϳª ¸¸µç´Ù. */ window = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window), "Pixmap'd Buttons!"); /* ¸ðµç À©µµµé¿¡ ´ëÇØ ÀÌ·¸°Ô ÇØÁÖ´Â °ÍÀÌ ÁÁÀ» °ÍÀÌ´Ù. */ gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC (gtk_exit), NULL); /* À©µµÀÇ border width¸¦ ¼¼ÆÃÇÑ´Ù. */ gtk_container_border_width (GTK_CONTAINER (window), 10); /* »õ·Î¿î ¹öÆ°À» Çϳª ¸¸µç´Ù. */ button = gtk_button_new (); /* ÀÌÂë¿¡¼ ÀÌ ÇÔ¼ö¸¦ ¾²´Â °ÍÀ» ±â¾ïÇ϶ó. */ gtk_signal_connect (GTK_OBJECT (button), "clicked", GTK_SIGNAL_FUNC (callback), (gpointer) "cool button"); /* ¹Ú½º¸¦ ¸¸µå´Â ÇÔ¼ö´Ù. */ box1 = xpm_label_box(window, "info.xpm", "cool button"); /* ¿ì¸® widgetµéÀ» ÆÐÅ·ÇÏ°í, º¸¿©ÁØ´Ù. */ gtk_widget_show(box1); gtk_container_add (GTK_CONTAINER (button), box1); gtk_widget_show(button); gtk_container_add (GTK_CONTAINER (window), button); gtk_widget_show (window); /* ¿©±â¼ºÎÅÍ´Â ¹º°¡ Àç¹ÌÀÖ´Â ÀÏÀÌ ½ÃÀÛµÉ ¶§±îÁö ¹«ÀÛÁ¤ ±â´Ù¸°´Ù. */ gtk_main (); return 0; } xpm_label_box ÇÔ¼ö´Â ÄÁÅ×À̳ʰ¡ µÉ ¼ö ÀÖ´Â ¾î¶² widget¿¡¶óµµ ÇȽº¸Ê°ú ¶óº§À» ÆÐÅ·Çϱâ À§ÇÏ¿© ¾²¿©Áú ¼ö ÀÖÀ» °ÍÀÌ´Ù. *** *** 6-2. Åä±Û ¹öÆ° *** Åä±Û¹öÆ°Àº Ŭ¸¯¿¡ ÀÇÇØ ÅÃÀϵǴ µÎ°¡Áö Áß ¾î´À ÇÑ »óÅ¿¡ ÀÖ¾î¾ß ÇÑ´Ù´Â Á¡¸¸ »«´Ù¸é º¸Åë ¹öÆ°°ú ¸Å¿ì À¯»çÇÏ´Ù. ±×°ÍÀº ´·ÁÁø »óÅ·ΠÀÖ´Ù°¡µµ, ¿ì¸®°¡ ´Ù½Ã Ŭ¸¯ÇØ ÁÖ¸é ´Ù½Ã Æ¢¾î³ª¿À°Ô µÉ ¼ö ÀÖ´Ù. ¶Ç Ŭ¸¯ÇÏ¸é ±×°ÍÀº ´Ù½Ã ´·¯Á® µé¾î°¥ °ÍÀÌ´Ù. Åä±Û¹öÆ°¿¡ ¾²ÀÌ´Â ¸¹Àº ÇÔ¼öµéÀÌ ¶óµð¿À¿Í üũ ¹öÆ°¿¡ ÀÇÇØ »ó¼ÓµÇ¾î ¾²À̵íÀÌ, Åä±Û¹öÆ°Àº üũ¹öÆ°°ú ¶óµð¿À¹öÆ°ÀÇ ±â¹ÝÀÌ µÈ´Ù. À̰͵éÀ» Á¢ÇÏ°Ô µÇ¸é ÀÌ Á¡À» ´Ù½Ã ÁöÀûÇÒ °ÍÀÌ´Ù. »õ·Î¿î Åä±Û¹öÆ°À» ¸¸µé·Á¸é ÀÌ°ÍÀ» ÀÌ¿ëÇÑ´Ù. GtkWidget* gtk_toggle_button_new (void); GtkWidget* gtk_toggle_button_new_with_label (gchar *label); ÃßÃøÇÒ ¼ö ÀÖ°ÚÁö¸¸, ÀÌ°ÍÀº º¸Åë¹öÆ° widgetÀÇ È£Ãâ°ú ¶È°°ÀÌ ÀÛ¿ëÇÑ´Ù. ù¹ø° °ÍÀº ºó Åä±Û¹öÆ°À», ±×¸®°í µÎ¹ø° °ÍÀº ÀÌ¹Ì ¶óº§widgetÀÌ ÆÐÅ·µÇ¾î ÀÖ´Â ¹öÆ°À» ¸¸µç´Ù. Åä±Û¹öÆ°°ú ¶óµð¿À¹öÆ°, üũ¹öÆ°ÀÇ »óŸ¦ µÇµ¹¸®±â À§ÇØ, ¿ì¸®´Â ¾Æ·¡ÀÇ ¿¹Á¦¿¡¼ º¸¿©Áú ¸ÅÅ©·Î¸¦ ÀÌ¿ëÇÑ´Ù. ÀÌ°ÍÀº ¾î¶² callback¿¡¼ Åä±ÛÀÇ »óŸ¦ Å×½ºÆ®ÇÑ´Ù. Åä±Û¹öÆ°¿¡ ÀÇÇØ ¹ß»ýÇÏ´Â ½Ã±×³ÎÀº (Åä±Û/üũ/¶óµð¿À ¹öÆ° widgetµé) "toggled" ½Ã±×³ÎÀÌ´Ù. ÀÌ ¹öÆ°µéÀÇ »óŸ¦ üũÇÏ·Á¸é ÀÌ toggled ½Ã±×³ÎÀ» Àâ¾Æ³»µµ·Ï ½Ã±×³Î Çڵ鷯¸¦ ¼Â¾÷ÇÏ°í, ±×°ÍÀÇ »óŸ¦ °áÁ¤Çϱâ À§ÇÑ ¸ÅÅ©·Î¸¦ ÀÌ¿ëÇÑ´Ù. ±× callbackÀº ÀÌ·± ¸ð¾çÀÇ °ÍÀÌ´Ù. void toggle_button_callback (GtkWidget *widget, gpointer data) { if (GTK_TOGGLE_BUTTON (widget)->active) { /* ÄÁÆ®·ÑÀÌ ¿©±â·Î ¿À¸é, Åä±Û¹öÆ°ÀÇ »óÅ´ upÀÌ´Ù. */ } else { /* Åä±Û¹öÆ°Àº downÀÌ´Ù. */ } } void gtk_toggle_button_set_state (GtkToggleButton *toggle_button, gint state); À§ÀÇ È£ÃâÀº Åä±Û¹öÆ°°ú, ±×°Í¿¡¼ ÆÄ»ýµÇ´Â ¶óµð¿À¿Í üũ¹öÆ°ÀÇ »óŸ¦ ¼¼ÆÃÇϱâ À§ÇØ ¾²ÀÏ ¼ö ÀÖ´Ù. ù¹ø° ÀÎÀÚ·Î ¿ì¸®°¡ ¸¸µç ¹öÆ°À» ³Ñ°ÜÁÖ°í, ±×¸®°í ±×°ÍÀÌ ´¸° »óÅÂÀÎÁö ¾Æ´ÑÁö¸¦ ±¸º°Çϱâ À§ÇØ µÎ¹ø° ÀÎÀÚ¸¦ TRUE ¶Ç´Â FALSE·Î ³Ñ°ÜÁØ´Ù. µðÆúÆ®´Â ¾È ´·¯Áø »óÅÂ, Áï FALSEÀÌ´Ù. ¿ì¸®°¡ gtk_toggle_button_set_state()ÇÔ¼ö¸¦ ¾²¸é ¹öÆ°¿¡¼ "clicked"½Ã±×³ÎÀÌ ¹ß»ýÇؼ ¹öÆ°ÀÇ »óÅ°¡ ½ÇÁ¦·Î º¯ÇÏ°Ô µÊÀ» ±â¾ïÇÏÀÚ. void gtk_toggle_button_toggled (GtkToggleButton *toggle_button); ÀÌ°ÍÀº °£´ÜÈ÷ ¹öÆ°À» Åä±ÛÇÏ°í, "toggled"½Ã±×³ÎÀ» ¹ß»ý½ÃŲ´Ù. *** *** 6-3. üũ¹öÆ° *** üũ¹öÆ°Àº À§¿¡ ÀÖ´Â Åä±Û¹öÆ°¿¡¼ ¸¹Àº Ư¼º°ú ÇÔ¼öµéÀ» »ó¼Ó¹Þ¾ÒÁö¸¸ ´Ù¼Ò ´Ù¸£°Ô º¸ÀδÙ. ÀÌ°ÍÀº ¹öÆ°°ú ±× ¾ÈÀÇ ÅؽºÆ®·Î Àִٱ⺸´Ù´Â, ÅؽºÆ® ¿·¿¡ ÀÖ´Â ÀÛÀº »ç°¢ÇüÀ̶ó°í ÇÒ ¼ö ÀÖ´Ù. À̵éÀº ¾î¶² ¾îÇÿ¡¼ Åä±ÛµÇ´Â ¿É¼ÇÀ¸·Î¼ ¸¹ÀÌ ºÃÀ» °ÍÀÌ´Ù. ÀÌ°ÍÀ» ¸¸µå´Â µÎ°¡Áö ÇÔ¼ö´Â º¸Åë¹öÆ°¿¡¼¿Í ¸¶Âù°¡Áö´Ù. GtkWidget* gtk_check_button_new (void); GtkWidget* gtk_check_button_new_with_label (gchar *label); new_with_labelÇÔ¼ö´Â ¿·¿¡ ÅؽºÆ® ¶óº§À» °¡Áö°í Àִ üũ¹öÆ°À» ¸¸µç´Ù. üũ¹öÆ°ÀÇ »óŸ¦ üũÇÏ´Â °ÍÀº Åä±Û¹öÆ°¿¡¼¿Í °°´Ù. *** *** 6-4. ¶óµð¿À¹öÆ° *** ¶óµð¿À¹öÆ°Àº ±×µéÀÌ ±×·ìȵǾî ÀÖ¾î¼ ÇÑ ¹ø¿¡ ¿ÀÁ÷ Çϳª¾¿¸¸ ¼±ÅÃ/º¹±ÍµÉ ¼ö ÀÖ´Ù´Â Á¡¸¸ »©°í´Â üũ¹öÆ°°ú À¯»çÇÏ´Ù. ÀÌ°ÍÀº ¾îÇÃÀÌ ¿É¼ÇÀÇ ¸®½ºÆ®¿¡¼ Çϳª¸¦ ¼±ÅÃÇϵµ·Ï ÇÏ´Â °æ¿ì¿¡ ¾²À̸é ÁÁÀ» °ÍÀÌ´Ù. »õ·Î¿î ¶óµð¿À¹öÆ°À» ¸¸µå´Â µ¥ ¾²´Â ÇÔ¼öµéÀÌ´Ù. GtkWidget* gtk_radio_button_new (GSList *group); GtkWidget* gtk_radio_button_new_with_label (GSList *group, gchar *label); ÀÌ È£Ãâµé¿¡´Â ´Ù¼Ò ´Ù¸¥ ÀÎÀÚ°¡ ÀÖ´Ù´Â °ÍÀ» ´«¿©°Ü º¸ÀÚ. À̵éÀº ÀûÀýÈ÷ ÀÓ¹«¸¦ ¼öÇàÇÒ ±×·ìÀ» ÇÊ¿ä·Î ÇÑ´Ù. ù¹ø° ÇÔ¼ö´Â ù¹ø° ÀÎÀÚ·Î NULLÀ» ³Ñ°Ü Áà¾ß ÇÑ´Ù. ±×¸®°í ¿ì¸®´Â ÀÌ°ÍÀ» ÀÌ¿ëÇÏ¿© ±×·ìÀ» ¸¸µç´Ù. GSList* gtk_radio_button_group (GtkRadioButton *radio_button); ±×¸®°í´Â ÀÌ ±×·ìÀ» gtk_radio_button_new ¶Ç´Â gtk_radio_button_new_with_ label¿¡ ù¹ø° ÀÎÀÚ·Î ³Ñ°ÜÁØ´Ù. ´ÙÀ½À» ÀÌ¿ëÇؼ ¾î¶² ¹öÆ°ÀÌ µðÆúÆ®·Î ´·¯Áö°Ô µÇ´ÂÁö¸¦ ºÐ¸íÈ÷ Çصδ °Íµµ ÁÁÀº »ý°¢ÀÌ´Ù. void gtk_toggle_button_set_state (GtkToggleButton *toggle_button, gint state); ÀÌ°ÍÀº Åä±Û¹öÆ°¿¡ ´ëÇÑ ºÎºÐ¿¡¼ ¼³¸íµÇ¾úÀ¸¸ç, Á¤È®È÷ °°Àº ¹æ¹ýÀ» µû¸¥´Ù. |