LINUX.ORG.RU

Gtk RadioAction Узнать текущий активный элемент группы

 , radioaction


0

1

Доброго,

собственно сабж. Есть несколько GtkRadioAction объединенных в группу, нужно по клику на gtkRadioButton получить Value нового выбранного элемента.

Наркоманское решение (к каждому экшену свой коллбек) не предлагать. Проблема в том, что метод action.get_current_value() всегда возвращает одно и то же значение.

static void align_left_toggle(GtkToggleButton *widget, Panel *p)
{
    if (gtk_toggle_button_get_active(widget))
        set_alignment(p, ALIGN_LEFT);
}

static void align_center_toggle(GtkToggleButton *widget, Panel *p)
{
    if (gtk_toggle_button_get_active(widget))
        set_alignment(p, ALIGN_CENTER);
}

static void align_right_toggle(GtkToggleButton *widget, Panel *p)
{
    if (gtk_toggle_button_get_active(widget))
        set_alignment(p, ALIGN_RIGHT);
}
    w = (GtkWidget*)gtk_builder_get_object( builder, "alignment_left" );
    g_signal_connect(w, "toggled", G_CALLBACK(align_left_toggle), p);

    w = (GtkWidget*)gtk_builder_get_object( builder, "alignment_center" );
    g_signal_connect(w, "toggled", G_CALLBACK(align_center_toggle), p);

    w = (GtkWidget*)gtk_builder_get_object( builder, "alignment_right" );
    g_signal_connect(w, "toggled", G_CALLBACK(align_right_toggle), p);

Ы?

geekless ★★
()
Ответ на: комментарий от geekless

Не хочу это наркоманское решение. У RadioButton есть коллбек «Changed», который вызывается, когда изменился активный элемент в группе, но вот когда вызываешь «get_current_value», то всегда возвращается одно и то же значение. Или это баг, или я что-то не так делаю.

Rubbiroid
() автор топика

Проблема в том, что метод action.get_current_value() всегда возвращает одно и то же значение.

как элементы создаешь?

ananas ★★★★★
()
Ответ на: комментарий от ananas

Все в Glade. У каждого элемента стоит группа и свой номер.

<object class="GtkRadioButton" id="rbSingleImage">
   <property name="label" translatable="yes">Use Single Image</property>
   <property name="related_action">raUseSingleImage</property>
   <property name="visible">True</property>
   <property name="can_focus">True</property>
   <property name="receives_default">False</property>
   <property name="relief">half</property>
   <property name="use_underline">True</property>
   <property name="xalign">0</property>
   <property name="draw_indicator">True</property>
   <property name="group">rbSeparateImages</property>
</object>
...
<object class="GtkRadioAction" id="raUseSingleImage">
  <property name="label" translatable="yes">Use Single Image</property>
  <property name="draw_as_radio">True</property>
  <property name="value">1</property>
  <property name="group">raUseSeparateImages</property>
  <signal name="changed" handler="main_on_changed" swapped="no"/>
</object>
Полная версия тут: http://pastebin.com/unSVWCSJ

Rubbiroid
() автор топика
Ответ на: комментарий от Rubbiroid

а руками создавать не пробовал? не исключено, что это косяк galde/GtkBuilder

ananas ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.