[GTk+] 아이템팩토리로 메뉴바 만들때 라디오 버튼으로 구성하려면...
      글쓴이: devanix / 작성시간: 월, 2007/10/01 - 2:20오전    
  
  안녕하세요.
static GtkItemFactoryEntry menu_items[] = {
          {"/_Tools",                        NULL,    NULL,  0,   "(Branch)"    , NULL},
          {"/_Tools/DB Daemon",              NULL,    NULL,  0,   "(LastBranch)", NULL},
          {"/_Tools/DB Daemon/DB Start...",  NULL,    NULL,  0,   "(RadioItem)" , NULL},
          {"/_Tools/DB Daemon/DB Stop..." ,  NULL,    NULL,  0,   "(RadioItem)" , NULL},
};
 
static GtkWidget *get_menubar_menu(GtkWidget *window){
          GtkItemFactory *item_factory;
          GtkAccelGroup  *accel_group;
 
          accel_group   = gtk_accel_group_new();
          item_factory  = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "'<'main'>'", accel_group);
 
          gint nmenu_items  = sizeof(menu_items) / sizeof(menu_items[0]);
          gtk_item_factory_create_items (item_factory, nmenu, menu_items, NULL);
          gtk_window_add_accel_group (GTK_WINDOW(window), accel_group);
 
          return gtk_item_factory_get_winget(item_factory, "'<'main'>'")   
}위와 같이 아이템패토리로 메뉴바를 구성하려고 합니다.
근데 DB Start... 와 DB Stop... 메뉴를 그룹으로 묶어 하나만 활성화 해야 되는데요 방법을 모르겠네요..
저렇케 만들면 라디오 버튼이 두개 전부가 활성화가 되는데
그룹으로 묶으려 해도 아이템팩토리 상에서 그룹으로 어떻케 묶는지...
친절한 답변 부탁드립니다.
Forums: 


()를 쓰신 것은 <>가
()를 쓰신 것은 <>가 잘 안 나와서라고 생각하겠습니다.
GTK+ 2.0 Tutorial에 자세히 나와 있습니다.
http://www.gtk.org/tutorial/x1588.html
static GtkItemFactoryEntry menu_items[] = { {"/_Tools", NULL, NULL, 0, "(Branch)", NULL}, {"/_Tools/DB Daemon", NULL, NULL, 0, "(LastBranch)", NULL}, {"/_Tools/DB Daemon/DB Start...", NULL, NULL, 0, "(RadioItem)", NULL}, {"/_Tools/DB Daemon/DB Stop...", NULL, NULL, 0, "/Tools/DB Daemon/DB Start...", NULL}, };즉, 라디오 버튼을 그룹으로 묶으려면 item_type을 묶으려는 라디오 버튼의 이름에서 단축키 밑줄을 뺀 문자열로 주면 됩니다.
답변감사드립니다.
영어가 딸려 GTK 책으로만 했었는데..
Tutorial도 자주 봐야겠네요.
암튼 정말 감사드려요~~
좋은 하루 되세요.
댓글 달기