Author: rpmcruz
Date: Mon Dec 22 20:46:42 2008
New Revision: 54339
URL: http://svn.opensuse.org/viewcvs/yast?rev=54339&view=rev
Log:
sync with trunk.
Modified:
branches/SuSE-Code-11-Branch/gtk/ChangeLog
branches/SuSE-Code-11-Branch/gtk/src/YGBarGraph.cc
branches/SuSE-Code-11-Branch/gtk/src/YGComboBox.cc
branches/SuSE-Code-11-Branch/gtk/src/YGDialog.cc
branches/SuSE-Code-11-Branch/gtk/src/YGDialog.h
branches/SuSE-Code-11-Branch/gtk/src/YGDumbTab.cc
branches/SuSE-Code-11-Branch/gtk/src/YGFrame.cc
branches/SuSE-Code-11-Branch/gtk/src/YGImage.cc
branches/SuSE-Code-11-Branch/gtk/src/YGInputField.cc
branches/SuSE-Code-11-Branch/gtk/src/YGIntField.cc
branches/SuSE-Code-11-Branch/gtk/src/YGLabel.cc
branches/SuSE-Code-11-Branch/gtk/src/YGLayout.cc
branches/SuSE-Code-11-Branch/gtk/src/YGMenuButton.cc
branches/SuSE-Code-11-Branch/gtk/src/YGPackageSelector.cc
branches/SuSE-Code-11-Branch/gtk/src/YGProgressBar.cc
branches/SuSE-Code-11-Branch/gtk/src/YGPushButton.cc
branches/SuSE-Code-11-Branch/gtk/src/YGRadioButton.cc
branches/SuSE-Code-11-Branch/gtk/src/YGSelectionModel.cc
branches/SuSE-Code-11-Branch/gtk/src/YGSelectionModel.h
branches/SuSE-Code-11-Branch/gtk/src/YGTable.cc
branches/SuSE-Code-11-Branch/gtk/src/YGText.cc
branches/SuSE-Code-11-Branch/gtk/src/YGWidget.cc
branches/SuSE-Code-11-Branch/gtk/src/YGWidget.h
branches/SuSE-Code-11-Branch/gtk/src/YGWizard.cc
branches/SuSE-Code-11-Branch/gtk/src/ygtkfixed.c
Modified: branches/SuSE-Code-11-Branch/gtk/ChangeLog
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/ChangeLog?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/ChangeLog (original)
+++ branches/SuSE-Code-11-Branch/gtk/ChangeLog Mon Dec 22 20:46:42 2008
@@ -1,3 +1,11 @@
+2008-12-22 Ricardo Cruz
+
+ * src/YGWidget.h/cc, touching most code: some small cleanups on
+ macros and connections.
+
+ * src/YGTable.cc (YGTable): disable sorting by default. Improved
+ setSortable (false): changing states still not functioning completely.
+
2008-12-20 Ricardo Cruz
* src/YGWidget.h, src/YGLayoutBox.cc, src/YGDialog.h, src/YGFrame.cc,
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGBarGraph.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGBarGraph.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGBarGraph.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGBarGraph.cc Mon Dec 22 20:46:42 2008
@@ -42,12 +42,10 @@
return color;
}
- YGWIDGET_IMPL_COMMON
-
virtual unsigned int getMinSize (YUIDimension dim)
- {
- return dim == YD_HORIZ ? 80 : 30;
- }
+ { return dim == YD_HORIZ ? 80 : 30; }
+
+ YGWIDGET_IMPL_COMMON (YBarGraph)
};
YBarGraph *YGOptionalWidgetFactory::createBarGraph (YWidget *parent)
@@ -101,12 +99,9 @@
gtk_box_pack_start (GTK_BOX (slider_box), m_scale, TRUE, TRUE, 0);
gtk_box_pack_start (GTK_BOX (slider_box), m_new_spin, FALSE, FALSE, 0);
- connect (m_scale, "value-changed",
- G_CALLBACK (scale_changed_cb), this);
- connect (m_free_spin, "value-changed",
- G_CALLBACK (free_spin_changed_cb), this);
- connect (m_new_spin, "value-changed",
- G_CALLBACK (new_spin_changed_cb), this);
+ connect (m_scale, "value-changed", G_CALLBACK (scale_changed_cb), this);
+ connect (m_free_spin, "value-changed", G_CALLBACK (free_spin_changed_cb), this);
+ connect (m_new_spin, "value-changed", G_CALLBACK (new_spin_changed_cb), this);
/* Main layout */
gtk_box_pack_start (GTK_BOX (getWidget()), graph, TRUE, TRUE, 6);
@@ -161,7 +156,7 @@
pThis->emitEvent (YEvent::ValueChanged);
}
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YPartitionSplitter)
};
YPartitionSplitter *YGOptionalWidgetFactory::createPartitionSplitter (YWidget *parent,
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGComboBox.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGComboBox.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGComboBox.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGComboBox.cc Mon Dec 22 20:46:42 2008
@@ -35,8 +35,7 @@
gtk_cell_layout_set_attributes (GTK_CELL_LAYOUT (getWidget()), cell,
"pixbuf", YGSelectionModel::ICON_COLUMN, NULL);
- connect (getWidget(), "changed",
- G_CALLBACK (selected_changed_cb), this);
+ connect (getWidget(), "changed", G_CALLBACK (selected_changed_cb), this);
// realize doesn't seem reliable -- expose then disconnect
g_signal_connect (G_OBJECT (getWidget()), "expose-event",
G_CALLBACK (realize_cb), this);
@@ -87,13 +86,13 @@
BlockEvents block (this);
GtkTreeIter iter;
if (findByText (value, &iter))
- setFocusItem (&iter);
+ doSelectItem (&iter);
else
gtk_entry_set_text (getEntry(), value.c_str());
}
// YGSelectionModel
- virtual void setFocusItem (GtkTreeIter *iter)
+ virtual void doSelectItem (GtkTreeIter *iter)
{
BlockEvents block (this);
if (iter)
@@ -102,7 +101,7 @@
gtk_combo_box_set_active (getComboBox(), -1);
}
- virtual YItem *focusItem()
+ virtual YItem *doSelectedItem()
{
GtkTreeIter iter;
if (gtk_combo_box_get_active_iter (getComboBox(), &iter))
@@ -127,9 +126,10 @@
static void selected_changed_cb (GtkComboBox *widget, YGComboBox *pThis)
{ pThis->emitEvent (YEvent::ValueChanged); }
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN (YComboBox)
- YGSELECTION_WIDGET_IMPL_ALL (YComboBox)
+ YGLABEL_WIDGET_IMPL (YComboBox)
+ YGSELECTION_WIDGET_IMPL (YComboBox)
+
+ // callbacks
static gboolean realize_cb (GtkWidget *widget, GdkEventExpose *event,
YGComboBox *pThis)
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGDialog.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGDialog.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGDialog.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGDialog.cc Mon Dec 22 20:46:42 2008
@@ -98,9 +98,6 @@
}
gtk_window_set_role (window, "yast2-gtk");
- if (!YGUI::ui()->hasWM())
- g_signal_connect (G_OBJECT (m_widget), "expose-event",
- G_CALLBACK (draw_border_cb), this);
}
if (_main_window)
@@ -263,23 +260,6 @@
return FALSE;
}
- static gboolean draw_border_cb (GtkWidget *widget, GdkEventExpose *event,
- YGWindow *pThis)
- {
- IMPL
- // to avoid background from overlapping, we emit the expose to the containee
- // ourselves
- gtk_container_propagate_expose (GTK_CONTAINER (widget),
- gtk_bin_get_child (GTK_BIN (widget)),
- event);
-
- GtkAllocation *alloc = &widget->allocation;
- gtk_draw_shadow (gtk_widget_get_style (widget), widget->window,
- GTK_STATE_NORMAL, GTK_SHADOW_ETCHED_OUT,
- alloc->x, alloc->y, alloc->width, alloc->height);
- return TRUE;
- }
-
static void realize_cb (GtkWidget *widget, YGWindow *pThis)
{ pThis->busyCursor(); }
@@ -408,13 +388,7 @@
// YWidget
-void YGDialog::setEnabled (bool enabled)
-{
- doSetEnabled (enabled);
- YWidget::setEnabled (enabled);
-}
-
-void YGDialog::setSize (int width, int height)
+void YGDialog::doSetSize (int width, int height)
{
// libyui calls YDialog::setSize() to force a geometry recalculation as a
// result of changed layout properties
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGDialog.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGDialog.h?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGDialog.h (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGDialog.h Mon Dec 22 20:46:42 2008
@@ -18,6 +18,8 @@
YGDialog (YDialogType dialogType, YDialogColorMode colorMode);
virtual ~YGDialog();
+ virtual GtkWidget *getContainer() { return m_containee; }
+
void setCloseCallback (YGWindowCloseFn closeCallback, void *closeData);
void unsetCloseCallback();
@@ -28,9 +30,8 @@
static YGDialog *currentDialog();
static GtkWindow *currentWindow();
- virtual void setSize (int width, int height);
+ virtual void doSetSize (int width, int height);
void setMinSize (int width, int height); // used internally by YGPackageSelector.cc
- virtual void setEnabled (bool enabled);
virtual void openInternal();
virtual void activate();
@@ -44,8 +45,7 @@
void setTitle (const std::string &title, bool sticky = false);
void setIcon (const std::string &icon);
- YGWIDGET_IMPL_CHILD_ADDED (YDialog, m_containee)
- YGWIDGET_IMPL_CHILD_REMOVED (YDialog, m_containee)
+ YGWIDGET_IMPL_CONTAINER (YDialog)
};
#endif // YGDIALOG_H
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGDumbTab.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGDumbTab.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGDumbTab.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGDumbTab.cc Mon Dec 22 20:46:42 2008
@@ -31,8 +31,7 @@
// the notebook reduce its size.
ygtk_adj_size_set_only_expand (YGTK_ADJ_SIZE (m_adj_size), TRUE);
- connect_after (getWidget(), "switch-page",
- G_CALLBACK (changed_tab_cb), this);
+ connect (getWidget(), "switch-page", G_CALLBACK (changed_tab_cb), this);
}
~YGDumbTab()
@@ -42,6 +41,9 @@
g_object_unref (G_OBJECT (m_containee));
}
+ virtual GtkWidget *getContainer()
+ { return m_containee; }
+
virtual void addItem (YItem *item)
{
BlockEvents block (this);
@@ -152,9 +154,7 @@
pThis->syncTabPage();
}
- YGWIDGET_IMPL_COMMON
- YGWIDGET_IMPL_CHILD_ADDED (YDumbTab, m_containee)
- YGWIDGET_IMPL_CHILD_REMOVED (YDumbTab, m_containee)
+ YGWIDGET_IMPL_CONTAINER (YDumbTab)
};
YDumbTab *YGOptionalWidgetFactory::createDumbTab (YWidget *parent)
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGFrame.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGFrame.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGFrame.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGFrame.cc Mon Dec 22 20:46:42 2008
@@ -29,7 +29,9 @@
gtk_widget_show (m_containee);
gtk_container_add (GTK_CONTAINER (getWidget()), m_containee);
}
- virtual ~YGBaseFrame() {}
+
+ virtual GtkWidget *getContainer()
+ { return m_containee; }
};
#include "YFrame.h"
@@ -84,9 +86,8 @@
setLabel (label);
}
- virtual ~YGFrame() {}
-
// YFrame
+
virtual void setLabel (const string &_str)
{
IMPL
@@ -96,13 +97,12 @@
YFrame::setLabel (_str);
}
- // Debug
+ YGWIDGET_IMPL_CONTAINER (YFrame)
+
+ // YGWidget
+
virtual string getDebugLabel() const
{ return label(); }
-
- YGWIDGET_IMPL_COMMON
- YGWIDGET_IMPL_CHILD_ADDED (YFrame, m_containee)
- YGWIDGET_IMPL_CHILD_REMOVED (YFrame, m_containee)
};
@@ -130,12 +130,11 @@
setLabel (label);
setValue (checked);
- g_signal_connect (G_OBJECT (button), "toggled",
- G_CALLBACK (toggled_cb), this);
+ connect (button, "toggled", G_CALLBACK (toggled_cb), this);
}
- virtual ~YGCheckBoxFrame() {}
// YCheckBoxFrame
+
virtual void setLabel (const string &_str)
{
GtkWidget *button = gtk_frame_get_label_widget (GTK_FRAME (getWidget()));
@@ -154,10 +153,13 @@
void setValue (bool value)
{
+ BlockEvents (this);
GtkWidget *button = gtk_frame_get_label_widget (GTK_FRAME (getWidget()));
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (button), value);
}
+ // YGWidget
+
virtual void doSetEnabled (bool enabled)
{
GtkWidget *frame = getWidget();
@@ -172,9 +174,7 @@
YWidget::setEnabled (enabled);
}
- YGWIDGET_IMPL_COMMON
- YGWIDGET_IMPL_CHILD_ADDED (YCheckBoxFrame, m_containee)
- YGWIDGET_IMPL_CHILD_REMOVED (YCheckBoxFrame, m_containee)
+ YGWIDGET_IMPL_CONTAINER (YCheckBoxFrame)
private:
static void toggled_cb (GtkWidget *widget, YGCheckBoxFrame *pThis)
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGImage.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGImage.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGImage.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGImage.cc Mon Dec 22 20:46:42 2008
@@ -51,7 +51,7 @@
ygtk_image_set_props (YGTK_IMAGE (getWidget()), align, NULL);
}
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YImage)
};
YImage *YGWidgetFactory::createImage (YWidget *parent, const string &filename, bool animated)
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGInputField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGInputField.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGInputField.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGInputField.cc Mon Dec 22 20:46:42 2008
@@ -27,8 +27,7 @@
if (passwordMode)
gtk_entry_set_visibility (entry, FALSE);
- connect (getWidget(), "field-entry-changed",
- G_CALLBACK (value_changed_cb), this);
+ connect (getWidget(), "field-entry-changed", G_CALLBACK (value_changed_cb), this);
}
// YInputField
@@ -63,22 +62,21 @@
updateProps();
}
+ // callbacks
static void value_changed_cb (YGtkFieldEntry *entry, gint field_nb, YGInputField *pThis)
{ pThis->emitEvent (YEvent::ValueChanged); }
+ // YGWidget
virtual bool doSetKeyboardFocus()
{
YGtkFieldEntry *field = YGTK_FIELD_ENTRY (getWidget());
return ygtk_field_entry_set_focus (field);
}
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN (YInputField)
-
virtual unsigned int getMinSize (YUIDimension dim)
- {
- return dim == YD_HORIZ ? (shrinkable() ? 30 : 200) : 0;
- }
+ { return dim == YD_HORIZ ? (shrinkable() ? 30 : 200) : 0; }
+
+ YGLABEL_WIDGET_IMPL (YInputField)
};
YInputField *YGWidgetFactory::createInputField (YWidget *parent, const string &label,
@@ -104,8 +102,7 @@
ygtk_field_entry_setup_field (field, 0, 2, "0123456789");
ygtk_field_entry_setup_field (field, 1, 2, "0123456789");
- connect (getWidget(), "field-entry-changed",
- G_CALLBACK (value_changed_cb), this);
+ connect (getWidget(), "field-entry-changed", G_CALLBACK (value_changed_cb), this);
}
// YTimeField
@@ -140,8 +137,7 @@
YGTimeField *pThis)
{ pThis->emitEvent (YEvent::ValueChanged); }
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN (YTimeField)
+ YGLABEL_WIDGET_IMPL (YTimeField)
};
YTimeField *YGOptionalWidgetFactory::createTimeField (YWidget *parent, const string &label)
@@ -179,12 +175,10 @@
gtk_widget_show (menu_button);
gtk_box_pack_start (GTK_BOX (getWidget()), menu_button, FALSE, TRUE, 6);
- connect (getWidget(), "field-entry-changed",
- G_CALLBACK (value_changed_cb), this);
- connect (m_calendar, "day-selected",
- G_CALLBACK (calendar_changed_cb), this);
- connect (m_calendar, "day-selected-double-click",
- G_CALLBACK (double_click_cb), popup);
+ connect (getWidget(), "field-entry-changed", G_CALLBACK (value_changed_cb), this);
+ connect (m_calendar, "day-selected", G_CALLBACK (calendar_changed_cb), this);
+ g_signal_connect (G_OBJECT (m_calendar), "day-selected-double-click",
+ G_CALLBACK (double_click_cb), popup);
}
inline GtkCalendar *getCalendar()
@@ -282,8 +276,7 @@
gtk_widget_hide (GTK_WIDGET (popup));
}
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN (YDateField)
+ YGLABEL_WIDGET_IMPL (YDateField)
};
YDateField *YGOptionalWidgetFactory::createDateField (YWidget *parent, const string &label)
@@ -309,8 +302,7 @@
ygtk_time_zone_picker_set_map (YGTK_TIME_ZONE_PICKER (getWidget()),
pixmap.c_str(), convert_code_to_name, (gpointer) &timezones);
- connect (getWidget(), "zone-clicked",
- G_CALLBACK (zone_clicked_cb), this);
+ connect (getWidget(), "zone-clicked", G_CALLBACK (zone_clicked_cb), this);
}
// YTimezoneSelector
@@ -348,7 +340,7 @@
YGTimezoneSelector *pThis)
{ pThis->emitEvent (YEvent::ValueChanged); }
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YTimezoneSelector)
};
YTimezoneSelector *YGOptionalWidgetFactory::createTimezoneSelector (YWidget *parent,
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGIntField.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGIntField.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGIntField.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGIntField.cc Mon Dec 22 20:46:42 2008
@@ -41,11 +41,9 @@
gtk_widget_show (m_spiner);
doSetValue (initialValue);
- connect (m_spiner, "value-changed",
- G_CALLBACK (spiner_changed_cb), this);
+ connect (m_spiner, "value-changed", G_CALLBACK (spiner_changed_cb), this);
if (m_slider)
- connect (m_slider, "value-changed",
- G_CALLBACK (slider_changed_cb), this);
+ connect (m_slider, "value-changed", G_CALLBACK (slider_changed_cb), this);
}
GtkSpinButton *getSpiner()
@@ -88,7 +86,7 @@
}
};
-#define YGSPIN_BOX_IMPL_SET_VALUE_CHAIN(ParentClass) \
+#define YGSPIN_BOX_IMPL(ParentClass) \
virtual void reportValue (int value) { \
ParentClass::setValue (value); \
} \
@@ -110,9 +108,8 @@
, YGSpinBox (this, parent, label, minValue, maxValue, initialValue, false)
{}
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN (YIntField)
- YGSPIN_BOX_IMPL_SET_VALUE_CHAIN (YIntField)
+ YGLABEL_WIDGET_IMPL (YIntField)
+ YGSPIN_BOX_IMPL (YIntField)
};
YIntField *YGWidgetFactory::createIntField (YWidget *parent, const string &label,
@@ -132,12 +129,11 @@
, YGSpinBox (this, parent, label, minValue, maxValue, initialValue, true)
{}
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN (YSlider)
- YGSPIN_BOX_IMPL_SET_VALUE_CHAIN (YIntField)
-
virtual unsigned int getMinSize (YUIDimension dim)
{ return dim == YD_HORIZ ? 200 : 0; }
+
+ YGLABEL_WIDGET_IMPL (YSlider)
+ YGSPIN_BOX_IMPL (YSlider)
};
YSlider *YGOptionalWidgetFactory::createSlider (YWidget *parent, const string &label,
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGLabel.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGLabel.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGLabel.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGLabel.cc Mon Dec 22 20:46:42 2008
@@ -47,7 +47,7 @@
}
}
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YLabel)
YGWIDGET_IMPL_USE_BOLD (YLabel)
};
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGLayout.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGLayout.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGLayout.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGLayout.cc Mon Dec 22 20:46:42 2008
@@ -3,7 +3,6 @@
********************************************************************/
#include
-#include "YGUI.h"
#include "YGWidget.h"
#include "YGUtils.h"
@@ -33,16 +32,11 @@
gpointer pThis) { \
((ParentClass *) pThis)->ParentClass::setSize (width, height); \
} \
- virtual void setSize (int width, int height) { doSetSize (width, height); } \
virtual void moveChild (YWidget *ychild, int x, int y) \
{ doMoveChild (getWidget(), ychild, x, y); } \
- virtual void setEnabled (bool enabled) { \
- ParentClass::setEnabled (enabled); \
- doSetEnabled (enabled); \
- }
-#include "YPushButton.h"
-#include "YMenuButton.h"
+#include
+#include
class ButtonHeightGroup
{
@@ -65,7 +59,7 @@
}
};
-#include "YLayoutBox.h"
+#include
class YGLayoutBox : public YLayoutBox, public YGWidget
{
@@ -81,14 +75,14 @@
YGLAYOUT_INIT
}
- virtual void addChild (YWidget *ychild)
+ virtual void doAddChild (YWidget *ychild, GtkWidget *container)
{
- YLayoutBox::addChild (ychild);
- doAddChild (ychild, getWidget());
+ YGWidget::doAddChild (ychild, container);
if (primary() == YD_HORIZ)
group.addWidget (ychild);
}
- YGWIDGET_IMPL_CHILD_REMOVED (YLayoutBox, getWidget())
+
+ YGWIDGET_IMPL_CONTAINER (YLayoutBox)
YGLAYOUT_PREFERRED_SIZE_IMPL (YLayoutBox)
YGLAYOUT_SET_SIZE_IMPL (YLayoutBox)
};
@@ -100,7 +94,7 @@
}
#if YAST2_VERSION >= 2017006
-#include "YButtonBox.h"
+#include
class YGButtonBox : public YButtonBox, public YGWidget
{
@@ -117,13 +111,13 @@
YGLAYOUT_INIT
}
- virtual void addChild (YWidget *ychild)
+ virtual void doAddChild (YWidget *ychild, GtkWidget *container)
{
- YButtonBox::addChild (ychild);
- doAddChild (ychild, getWidget());
+ YGWidget::doAddChild (ychild, container);
group.addWidget (ychild);
}
- YGWIDGET_IMPL_CHILD_REMOVED (YButtonBox, getWidget())
+
+ YGWIDGET_IMPL_CONTAINER (YButtonBox)
YGLAYOUT_PREFERRED_SIZE_IMPL (YButtonBox)
YGLAYOUT_SET_SIZE_IMPL (YButtonBox)
};
@@ -136,7 +130,7 @@
#endif
-#include "YAlignment.h"
+#include
class YGAlignment : public YAlignment, public YGWidget
{
@@ -158,8 +152,7 @@
g_object_unref (G_OBJECT (m_background_pixbuf));
}
- YGWIDGET_IMPL_CHILD_ADDED (YAlignment, m_widget)
- YGWIDGET_IMPL_CHILD_REMOVED (YAlignment, m_widget)
+ YGWIDGET_IMPL_CONTAINER (YAlignment)
YGLAYOUT_PREFERRED_SIZE_IMPL (YAlignment)
YGLAYOUT_SET_SIZE_IMPL (YAlignment)
@@ -216,7 +209,7 @@
return new YGAlignment (parent, halign, valign);
}
-#include "YEmpty.h"
+#include
// Just an empty space.
class YGEmpty : public YEmpty, public YGWidget
@@ -229,7 +222,7 @@
setBorder (0);
}
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YEmpty)
};
YEmpty *YGWidgetFactory::createEmpty (YWidget *parent)
@@ -238,7 +231,7 @@
return new YGEmpty (parent);
}
-#include "YSpacing.h"
+#include
// Empty space, with a fixed size.
class YGSpacing : public YSpacing, public YGWidget
@@ -252,7 +245,7 @@
YGLAYOUT_INIT
}
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YSpacing)
YGLAYOUT_PREFERRED_SIZE_IMPL (YSpacing)
static void set_size_cb (YGtkFixed *fixed, gint width, gint height,
gpointer pThis) {}
@@ -264,7 +257,7 @@
return new YGSpacing (parent, dim, stretchable, size);
}
-#include "YReplacePoint.h"
+#include
// an empty space that will get replaced
class YGReplacePoint : public YReplacePoint, public YGWidget
@@ -277,18 +270,15 @@
setBorder (0);
}
- YGWIDGET_IMPL_COMMON
- YGWIDGET_IMPL_CHILD_ADDED (YReplacePoint, getWidget())
- YGWIDGET_IMPL_CHILD_REMOVED (YReplacePoint, getWidget())
+ YGWIDGET_IMPL_CONTAINER (YReplacePoint)
};
YReplacePoint *YGWidgetFactory::createReplacePoint (YWidget *parent)
{
- IMPL
return new YGReplacePoint (parent);
}
-#include "YSquash.h"
+#include
// A-like YAlignment, YSquash messes around child settings.
// In this case, it can remove the stretchable attribute.
@@ -302,9 +292,7 @@
setBorder (0);
}
- YGWIDGET_IMPL_COMMON
- YGWIDGET_IMPL_CHILD_ADDED (YSquash, getWidget())
- YGWIDGET_IMPL_CHILD_REMOVED (YSquash, getWidget())
+ YGWIDGET_IMPL_CONTAINER (YSquash)
};
YSquash *YGWidgetFactory::createSquash (YWidget *parent, bool hsquash, bool vsquash)
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGMenuButton.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGMenuButton.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGMenuButton.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGMenuButton.cc Mon Dec 22 20:46:42 2008
@@ -69,7 +69,7 @@
YGUI::ui()->sendEvent (new YMenuEvent (item));
}
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YMenuButton)
};
YMenuButton *YGWidgetFactory::createMenuButton (YWidget *parent, const string &label)
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGPackageSelector.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGPackageSelector.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGPackageSelector.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGPackageSelector.cc Mon Dec 22 20:46:42 2008
@@ -3036,7 +3036,7 @@
m_package_selector->packageModified (package);
}
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YPackageSelector)
// Utilities
void createToolsButton()
@@ -3178,7 +3178,7 @@
YGWidget (this, parent, true, GTK_TYPE_EVENT_BOX, NULL)
{
}
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YPackageSelector)
};
#endif
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGProgressBar.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGProgressBar.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGProgressBar.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGProgressBar.cc Mon Dec 22 20:46:42 2008
@@ -21,8 +21,7 @@
// NOTE: its label widget is positionated at the vertical, because its label
// may change often and so will its size, which will look odd (we may want
// to make the label widget to only grow).
- , YGLabeledWidget (this, parent, label, YD_VERT,
- GTK_TYPE_PROGRESS_BAR, NULL)
+ , YGLabeledWidget (this, parent, label, YD_VERT, GTK_TYPE_PROGRESS_BAR, NULL)
{}
// YProgressBar
@@ -40,17 +39,15 @@
*/
}
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN (YProgressBar)
-
virtual unsigned int getMinSize (YUIDimension dim)
{ return dim == YD_HORIZ ? 200 : 0; }
+
+ YGLABEL_WIDGET_IMPL (YProgressBar)
};
YProgressBar *YGWidgetFactory::createProgressBar (YWidget *parent, const string &label,
int maxValue)
{
- IMPL
return new YGProgressBar (parent, label, maxValue);
}
@@ -64,8 +61,7 @@
YGDownloadProgress (YWidget *parent, const string &label,
const string &filename, YFileSize_t expectedFileSize)
: YDownloadProgress (NULL, label, filename, expectedFileSize)
- , YGLabeledWidget (this, parent, label, YD_HORIZ,
- GTK_TYPE_PROGRESS_BAR, NULL)
+ , YGLabeledWidget (this, parent, label, YD_HORIZ, GTK_TYPE_PROGRESS_BAR, NULL)
{
timeout_id = g_timeout_add (250, timeout_cb, this);
}
@@ -125,8 +121,7 @@
return TRUE;
}
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN (YDownloadProgress)
+ YGLABEL_WIDGET_IMPL (YDownloadProgress)
};
YDownloadProgress *YGOptionalWidgetFactory::createDownloadProgress (YWidget *parent,
@@ -192,11 +187,11 @@
return 1.0 - (((float) currentValue (n)) / maxValue (n));
}
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YMultiProgressMeter)
};
YMultiProgressMeter *YGOptionalWidgetFactory::createMultiProgressMeter (YWidget *parent,
- YUIDimension dim, const vector<float> &maxValues)
+ YUIDimension dim, const vector <float> &maxValues)
{
return new YGMultiProgressMeter (parent, dim, maxValues);
}
@@ -264,8 +259,7 @@
return TRUE;
}
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN (YBusyIndicator)
+ YGLABEL_WIDGET_IMPL (YBusyIndicator)
};
YBusyIndicator *YGWidgetFactory::createBusyIndicator (YWidget *parent, const string &label, int timeout)
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGPushButton.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGPushButton.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGPushButton.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGPushButton.cc Mon Dec 22 20:46:42 2008
@@ -24,8 +24,6 @@
gtk_button_set_use_underline (GTK_BUTTON (getWidget()), TRUE);
setLabel (label);
connect (getWidget(), "clicked", G_CALLBACK (clicked_cb), this);
- g_signal_connect (G_OBJECT (getWidget()), "expose-event",
- G_CALLBACK (treat_icon_cb), this);
}
void setStockIcon (const std::string &label)
@@ -150,7 +148,7 @@
}
return true;
}
-
+#if 0
static gboolean treat_icon_cb (GtkWidget *widget, GdkEventExpose *event,
YGPushButton *pThis)
{
@@ -192,12 +190,13 @@
g_signal_handlers_disconnect_by_func (widget, (gpointer) treat_icon_cb, pThis);
return FALSE;
}
+#endif
- // Events
+ // callbacks
static void clicked_cb (GtkButton *button, YGPushButton *pThis)
{ pThis->emitEvent (YEvent::Activated, IGNORE_NOTIFY_EVENT); }
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YPushButton)
};
YPushButton *YGWidgetFactory::createPushButton (YWidget *parent, const string &label)
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGRadioButton.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGRadioButton.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGRadioButton.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGRadioButton.cc Mon Dec 22 20:46:42 2008
@@ -58,8 +58,7 @@
gtk_button_set_use_underline (GTK_BUTTON (getWidget()), TRUE);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (getWidget()), FALSE);
- connect_after (getWidget(), "toggled",
- G_CALLBACK (toggled_cb), this);
+ connect (getWidget(), "toggled", G_CALLBACK (toggled_cb), this);
}
// YRadioButton
@@ -91,7 +90,7 @@
}
}
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YRadioButton)
YGWIDGET_IMPL_USE_BOLD (YRadioButton)
// callbacks
@@ -127,9 +126,7 @@
setBorder (0);
}
- YGWIDGET_IMPL_COMMON
- YGWIDGET_IMPL_CHILD_ADDED (YRadioButtonGroup, m_widget)
- YGWIDGET_IMPL_CHILD_REMOVED (YRadioButtonGroup, m_widget)
+ YGWIDGET_IMPL_CONTAINER (YRadioButtonGroup)
};
YRadioButtonGroup *YGWidgetFactory::createRadioButtonGroup (YWidget *parent)
@@ -155,8 +152,7 @@
gtk_button_set_use_underline (GTK_BUTTON (getWidget()), TRUE);
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (getWidget()), isChecked);
- connect (getWidget (), "toggled",
- G_CALLBACK (toggled_cb), this);
+ connect (getWidget(), "toggled", G_CALLBACK (toggled_cb), this);
}
// YCheckButton
@@ -206,7 +202,7 @@
pThis->emitEvent (YEvent::ValueChanged);
}
- YGWIDGET_IMPL_COMMON
+ YGWIDGET_IMPL_COMMON (YCheckBox)
YGWIDGET_IMPL_USE_BOLD (YCheckBox)
};
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGSelectionModel.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGSelectionModel.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGSelectionModel.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGSelectionModel.cc Mon Dec 22 20:46:42 2008
@@ -61,7 +61,7 @@
for (YItemIterator it = item->childrenBegin(); it != item->childrenEnd(); it++)
doAddItem (*it);
if (empty || item->selected())
- setFocusItem (&iter);
+ doSelectItem (&iter);
YTreeItem *tree_item = dynamic_cast (item);
if (tree_item && tree_item->isOpen()) {
@@ -132,11 +132,11 @@
return FALSE;
}
-void YGSelectionModel::implFocusItem (YItem *item)
+void YGSelectionModel::implSelectItem (YItem *item)
{
GtkTreeIter iter;
if (getIter (item, &iter))
- setFocusItem (&iter);
+ doSelectItem (&iter);
}
void YGSelectionModel::addRow (GtkTreeIter *iter, YItem *item, bool honor_select)
@@ -169,7 +169,7 @@
}
if (honor_select && item->selected())
- setFocusItem (iter);
+ doSelectItem (iter);
}
void YGSelectionModel::setCellLabel (GtkTreeIter *iter, int col, const string &label)
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGSelectionModel.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGSelectionModel.h?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGSelectionModel.h (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGSelectionModel.h Mon Dec 22 20:46:42 2008
@@ -26,11 +26,10 @@
GtkTreeModel *getModel();
void createModel (const vector <GType> &types);
- void doAddItem (YItem *item);
- void doDeleteAllItems();
-
- virtual YItem *focusItem() = 0;
- virtual void setFocusItem (GtkTreeIter *iter) = 0; // NULL to unset
+ virtual void doAddItem (YItem *item);
+ virtual void doDeleteAllItems();
+ virtual YItem *doSelectedItem() = 0;
+ virtual void doSelectItem (GtkTreeIter *iter) = 0; // NULL to unselect all
YItemConstIterator itemsBegin() { return ywidget->itemsBegin(); }
YItemConstIterator itemsEnd() { return ywidget->itemsEnd(); }
@@ -53,7 +52,7 @@
int getMaxDepth (int *rows); // not cached
protected:
- void implFocusItem (YItem *item);
+ void implSelectItem (YItem *item);
private:
GtkTreeModel *m_model;
bool isTree;
@@ -64,36 +63,27 @@
gpointer dataIndex;
};
-#define YGSELECTION_WIDGET_IMPL_ADD(ParentClass) \
- virtual void addItem(YItem *item) { \
- ParentClass::addItem (item); \
- doAddItem (item); \
- }
-
-#define YGSELECTION_WIDGET_IMPL_CLEAR(ParentClass) \
- virtual void deleteAllItems() { \
- ParentClass::deleteAllItems(); \
- doDeleteAllItems(); \
- }
-
-#define YGSELECTION_WIDGET_IMPL_SELECT(ParentClass) \
+#define YGSELECTION_WIDGET_IMPL(ParentClass) \
+ virtual void addItem(YItem *item) { \
+ ParentClass::addItem (item); \
+ doAddItem (item); \
+ } \
+ virtual void deleteAllItems() { \
+ ParentClass::deleteAllItems(); \
+ doDeleteAllItems(); \
+ } \
virtual void selectItem (YItem *item, bool select) { \
- ParentClass::selectItem (item, select); \
- if (select) \
- implFocusItem (item); \
- } \
- virtual void deselectAllItems() { \
- ParentClass::deselectAllItems(); \
- setFocusItem (NULL); \
- } \
- virtual YItem *selectedItem() { \
- return focusItem(); \
- } \
-
-#define YGSELECTION_WIDGET_IMPL_ALL(ParentClass) \
- YGSELECTION_WIDGET_IMPL_ADD(ParentClass) \
- YGSELECTION_WIDGET_IMPL_CLEAR(ParentClass) \
- YGSELECTION_WIDGET_IMPL_SELECT(ParentClass)
+ ParentClass::selectItem (item, select); \
+ if (select) \
+ implSelectItem (item); \
+ } \
+ virtual void deselectAllItems() { \
+ ParentClass::deselectAllItems(); \
+ doSelectItem (NULL); \
+ } \
+ virtual YItem *selectedItem() { \
+ return doSelectedItem(); \
+ }
#endif /*YGSELECTION_MODEL_H*/
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGTable.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGTable.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGTable.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGTable.cc Mon Dec 22 20:46:42 2008
@@ -15,6 +15,7 @@
{
protected:
int m_colsNb;
+ bool m_blockSelected; // GtkTreeSelection signals act weird
public:
YGTableView (YWidget *ywidget, YWidget *parent, const string &label,
@@ -24,6 +25,7 @@
, YGSelectionModel ((YSelectionWidget *) ywidget, ordinaryModel, isTree)
{
IMPL
+ m_blockSelected = false;
if (ordinaryModel) {
appendIconTextColumn ("", YAlignUnchanged, YGSelectionModel::ICON_COLUMN,
YGSelectionModel::LABEL_COLUMN);
@@ -107,27 +109,23 @@
virtual bool immediateEvent() { return true; }
// YGSelectionModel
- virtual void setFocusItem (GtkTreeIter *iter)
+ virtual void doSelectItem (GtkTreeIter *iter)
{
- BlockEvents block (this);
+ m_blockSelected = true;
if (iter) {
GtkTreePath *path = gtk_tree_model_get_path (getModel(), iter);
gtk_tree_view_expand_to_path (getView(), path);
- if (gtk_tree_selection_get_mode (getSelection()) == GTK_SELECTION_MULTIPLE) {
- gtk_tree_selection_select_iter (getSelection(), iter);
- }
- else {
- gtk_tree_view_set_cursor (getView(), path, NULL, FALSE);
- gtk_tree_view_scroll_to_cell (getView(), path, NULL, TRUE, 0.5, 0.5);
- }
+ gtk_tree_selection_select_iter (getSelection(), iter);
+ if (gtk_tree_selection_get_mode (getSelection()) != GTK_SELECTION_MULTIPLE)
+ gtk_tree_view_scroll_to_cell (getView(), path, NULL, FALSE, 0.5, 0);
gtk_tree_path_free (path);
}
else
gtk_tree_selection_unselect_all (getSelection());
}
- virtual YItem *focusItem()
+ virtual YItem *doSelectedItem()
{
GtkTreeIter iter;
if (gtk_tree_selection_get_selected (getSelection(), NULL, &iter))
@@ -167,8 +165,12 @@
emitEvent (YEvent::ValueChanged);
}
- static void selection_changed_cb (GtkTreeSelection *selection, YGTableView* pThis)
+ static void selection_changed_cb (GtkTreeSelection *selection, YGTableView *pThis)
{
+ if (pThis->m_blockSelected) {
+ pThis->m_blockSelected = false;
+ return;
+ }
if (!pThis->toggleMode()) {
GtkTreeSelection *selection = pThis->getSelection();
for (YItemConstIterator it = pThis->itemsBegin(); it != pThis->itemsEnd(); it++) {
@@ -236,12 +238,11 @@
appendDumbColumn();
}
setModel();
- setKeepSorting (keepSorting());
+ if (!keepSorting())
+ setSortable (true);
- connect (getWidget(), "row-activated",
- G_CALLBACK (activated_cb), (YGTableView*) this);
- connect (G_OBJECT (getSelection()), "changed",
- G_CALLBACK (selection_changed_cb), (YGTableView*) this);
+ connect (getWidget(), "row-activated", G_CALLBACK (activated_cb), (YGTableView *) this);
+ connect (getSelection(), "changed", G_CALLBACK (selection_changed_cb), (YGTableView *) this);
}
virtual void setKeepSorting (bool keepSorting)
@@ -255,20 +256,6 @@
}
}
- virtual void addItem (YItem *_item)
- {
- YTable::addItem (_item);
- YTableItem *item = dynamic_cast (_item);
- if (item) {
- GtkTreeIter iter;
- addRow (&iter, _item, true);
- for (int i = 0; i < columns(); i++)
- setCell (&iter, item->cell (i));
- }
- else
- yuiError() << "Can only add YTableItems to a YTable.\n";
- }
-
virtual void cellChanged (const YTableCell *cell)
{
GtkTreeIter iter;
@@ -304,7 +291,7 @@
gtk_tree_view_column_set_sort_column_id (column, index);
}
else
- gtk_tree_view_column_set_clickable (column, FALSE);
+ gtk_tree_view_column_set_sort_column_id (column, -1);
}
g_list_free (columns);
}
@@ -312,19 +299,36 @@
virtual bool immediateEvent()
{ return immediateMode(); }
- YGWIDGET_IMPL_COMMON
- YGSELECTION_WIDGET_IMPL_CLEAR (YTable)
- YGSELECTION_WIDGET_IMPL_SELECT (YTable)
+ // YGWidget
virtual unsigned int getMinSize (YUIDimension dim)
{ return 30; }
+
+ YGWIDGET_IMPL_COMMON (YTable)
+
+ // YGSelectionModel
+
+ virtual void doAddItem (YItem *_item)
+ {
+ YTableItem *item = dynamic_cast (_item);
+ if (item) {
+ GtkTreeIter iter;
+ addRow (&iter, _item, true);
+ for (int i = 0; i < columns(); i++)
+ setCell (&iter, item->cell (i));
+ }
+ else
+ yuiError() << "Can only add YTableItems to a YTable.\n";
+ }
+
+ YGSELECTION_WIDGET_IMPL (YTable)
};
#if YAST2_VERSION >= 2017005
YTable *YGWidgetFactory::createTable (YWidget *parent, YTableHeader *headers,
bool multiSelection)
{
- return new YGTable (parent, headers, multiSelection);
+ return new YGTable (parent, headers, multiSelection);
}
#else
YTable *YGWidgetFactory::createTable (YWidget *parent, YTableHeader *headers)
@@ -342,16 +346,14 @@
: YSelectionBox (NULL, label),
YGTableView (this, parent, label, true, false)
{
- connect (getWidget(), "row-activated",
- G_CALLBACK (activated_cb), (YGTableView*) this);
- connect (G_OBJECT (getSelection()), "changed",
- G_CALLBACK (selection_changed_cb), (YGTableView*) this);
+ connect (getWidget(), "row-activated", G_CALLBACK (activated_cb), (YGTableView *) this);
+ connect (getSelection(), "changed", G_CALLBACK (selection_changed_cb), (YGTableView *) this);
}
virtual bool isShrinkable() { return shrinkable(); }
- YGWIDGET_IMPL_COMMON
- YGSELECTION_WIDGET_IMPL_ALL (YSelectionBox)
+ YGWIDGET_IMPL_COMMON (YSelectionBox)
+ YGSELECTION_WIDGET_IMPL (YSelectionBox)
};
YSelectionBox *YGWidgetFactory::createSelectionBox (YWidget *parent, const string &label)
@@ -378,48 +380,44 @@
appendIconTextColumn ("", YAlignUnchanged, 1, 2);
setModel();
- connect (G_OBJECT (getSelection()), "changed",
- G_CALLBACK (selection_changed_cb), (YGTableView*) this);
+ connect (getSelection(), "changed", G_CALLBACK (selection_changed_cb), (YGTableView *) this);
// Let the user toggle, using space/enter or double click (not an event).
- connect_after (getWidget(), "row-activated",
- G_CALLBACK (multi_activated_cb), this);
+ connect (getWidget(), "row-activated", G_CALLBACK (multi_activated_cb), this);
}
// YMultiSelectionBox
- virtual void addItem (YItem *item)
+ virtual void doAddItem (YItem *item)
{
GtkTreeIter iter;
addRow (&iter, item, false);
setCellToggle (&iter, 0, item->selected());
setCellIcon (&iter, 1, item->iconName());
setCellLabel (&iter, 2, item->label());
- YMultiSelectionBox::addItem (item);
}
- virtual void selectItem (YItem *item, bool select)
+ virtual void doSelectItem (YItem *item)
{
GtkTreeIter iter;
if (getIter (item, &iter))
- setCellToggle (&iter, 0, select);
- YMultiSelectionBox::selectItem (item);
- }
-
- virtual void deselectAllItems()
- {
- GtkTreeIter iter;
- if (gtk_tree_model_get_iter_first (getModel(), &iter)) {
- do {
- setCellToggle (&iter, 0, false);
- } while (gtk_tree_model_iter_next (getModel(), &iter));
+ setCellToggle (&iter, 0, item->selected());
+ else { // unselect all
+ if (gtk_tree_model_get_iter_first (getModel(), &iter)) {
+ do {
+ setCellToggle (&iter, 0, false);
+ } while (gtk_tree_model_iter_next (getModel(), &iter));
+ }
}
- YMultiSelectionBox::deselectAllItems();
}
virtual YItem *currentItem()
- { return focusItem(); }
+ { return doSelectedItem(); }
virtual void setCurrentItem (YItem *item)
- { implFocusItem (item); }
+ {
+ GtkTreeIter iter;
+ if (getIter (item, &iter))
+ YGTableView::doSelectItem (&iter);
+ }
// YGTableView
virtual bool toggleMode() const
@@ -435,8 +433,8 @@
virtual bool isShrinkable() { return shrinkable(); }
- YGWIDGET_IMPL_COMMON
- YGSELECTION_WIDGET_IMPL_CLEAR (YMultiSelectionBox)
+ YGWIDGET_IMPL_COMMON (YMultiSelectionBox)
+ YGSELECTION_WIDGET_IMPL (YMultiSelectionBox)
};
YMultiSelectionBox *YGWidgetFactory::createMultiSelectionBox (YWidget *parent,
@@ -456,14 +454,10 @@
: YTree (NULL, label)
, YGTableView (this, parent, label, true, true)
{
- connect (getWidget(), "row-activated",
- G_CALLBACK (activated_cb), (YGTableView*) this);
- connect (getWidget(), "cursor-changed",
- G_CALLBACK (row_selected_cb), this);
- connect (getWidget(), "row-collapsed",
- G_CALLBACK (row_collapsed_cb), this);
- connect (getWidget(), "row-expanded",
- G_CALLBACK (row_expanded_cb), this);
+ connect (getWidget(), "row-activated", G_CALLBACK (activated_cb), this);
+ connect (getWidget(), "cursor-changed", G_CALLBACK (row_selected_cb), this);
+ connect (getWidget(), "row-collapsed", G_CALLBACK (row_collapsed_cb), this);
+ connect (getWidget(), "row-expanded", G_CALLBACK (row_expanded_cb), this);
}
// YTree
@@ -481,11 +475,11 @@
virtual const YTreeItem *getCurrentItem() const
{
YGTree *pThis = const_cast (this);
- return (YTreeItem *) pThis->focusItem();
+ return (YTreeItem *) pThis->doSelectedItem();
}
virtual void setCurrentItem (YTreeItem *item)
- { implFocusItem ((YItem *) item); }
+ { implSelectItem ((YItem *) item); }
// YGSelectionModel
virtual void expand (GtkTreeIter *iter)
@@ -535,13 +529,11 @@
YGTable::selection_changed_cb (selection, pThis);
}
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN (YTree)
- YGSELECTION_WIDGET_IMPL_CLEAR (YTree)
- YGSELECTION_WIDGET_IMPL_SELECT (YTree)
-
virtual unsigned int getMinSize (YUIDimension dim)
{ return 80; }
+
+ YGLABEL_WIDGET_IMPL (YTree)
+ YGSELECTION_WIDGET_IMPL (YTree)
};
YTree *YGWidgetFactory::createTree (YWidget *parent, const string &label)
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGText.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGText.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGText.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGText.cc Mon Dec 22 20:46:42 2008
@@ -22,8 +22,7 @@
IMPL
setPolicy (GTK_POLICY_AUTOMATIC, GTK_POLICY_ALWAYS);
maxChars = -1;
- connect (G_OBJECT (getBuffer()), "changed",
- G_CALLBACK (text_changed_cb), this);
+ connect (getBuffer(), "changed", G_CALLBACK (text_changed_cb), this);
}
GtkTextBuffer* getBuffer()
@@ -110,8 +109,7 @@
YMultiLineEdit::setInputMaxLength (nb);
}
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN(YMultiLineEdit)
+ // YGWidget
virtual unsigned int getMinSize (YUIDimension dim)
{
@@ -121,6 +119,8 @@
}
return 30;
}
+
+ YGLABEL_WIDGET_IMPL (YMultiLineEdit)
};
YMultiLineEdit *YGWidgetFactory::createMultiLineEdit (YWidget *parent, const string &label)
@@ -139,14 +139,14 @@
{}
// YLogView
+
virtual void displayLogText (const string &text)
{
setText (text);
scrollToBottom();
}
- YGWIDGET_IMPL_COMMON
- YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN(YLogView)
+ // YGWidget
virtual unsigned int getMinSize (YUIDimension dim)
{
@@ -156,6 +156,8 @@
}
return 50;
}
+
+ YGLABEL_WIDGET_IMPL (YLogView)
};
YLogView *YGWidgetFactory::createLogView (YWidget *parent, const string &label,
@@ -225,16 +227,18 @@
setText (value(), plain_mode);
}
- // events
+ // callbacks
static void link_clicked_cb (GtkWidget *widget, const char *url, YGRichText *pThis)
{
YGUI::ui()->sendEvent (new YMenuEvent (url));
}
- YGWIDGET_IMPL_COMMON
+ // YGWidget
virtual unsigned int getMinSize (YUIDimension dim)
{ return shrinkable() ? 10 : 100; }
+
+ YGWIDGET_IMPL_COMMON (YRichText)
};
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGWidget.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGWidget.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGWidget.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGWidget.cc Mon Dec 22 20:46:42 2008
@@ -18,14 +18,15 @@
{
typedef std::pair Handler;
std::list <Handler> m_handlers;
- void connect (GObject *object, const char *name,
- GCallback callback, gpointer data, bool after)
+ void connectSignal (GObject *object, const char *name,
+ GCallback callback, gpointer data, bool after)
{
gulong handler;
if (after)
handler = g_signal_connect_after (object, name, callback, data);
else
handler = g_signal_connect (object, name, callback, data);
+
Handler h (object, handler);
m_handlers.push_back (h);
}
@@ -92,6 +93,7 @@
{
IMPL
delete m_signals;
+ m_signals = 0;
if (YGUI::ui()->eventPendingFor (m_ywidget))
YGUI::ui()->m_event_handler.consumePendingEvent();
// remove children if container?
@@ -151,7 +153,7 @@
}
}
-int YGWidget::getPreferredSize (YUIDimension dimension)
+int YGWidget::doPreferredSize (YUIDimension dimension)
{
// We might want to do some caching here..
GtkRequisition req;
@@ -191,30 +193,23 @@
}
};
- if (flags & IGNORE_NOTIFY_EVENT || m_ywidget->notify())
- {
+ if (flags & IGNORE_NOTIFY_EVENT || m_ywidget->notify()) {
+ YWidgetEvent *event = new YWidgetEvent (m_ywidget, reason);
if (flags & DELAY_EVENT)
- g_timeout_add (250, inner::dispatchEvent, new YWidgetEvent (m_ywidget, reason));
+ g_timeout_add (250, inner::dispatchEvent, event);
else if (!(flags & IF_NOT_PENDING_EVENT) || !YGUI::ui()->eventPendingFor (m_ywidget))
- YGUI::ui()->sendEvent (new YWidgetEvent (m_ywidget, reason));
+ YGUI::ui()->sendEvent (event);
}
}
-void YGWidget::connectSignal (GObject *object, const char *name,
- GCallback callback, gpointer data, bool after)
+void YGWidget::connect (gpointer object, const char *name, GCallback callback, gpointer data,
+ bool after)
{
if (!m_signals)
m_signals = new YGWidget::Signals();
- m_signals->connect (object, name, callback, data, after);
+ m_signals->connectSignal (G_OBJECT (object), name, callback, data, after);
}
-void YGWidget::connect (GObject *object, const char *name,
- GCallback callback, gpointer data)
-{ connectSignal (object, name, callback, data, false); }
-void YGWidget::connect_after (GObject *object, const char *name,
- GCallback callback, gpointer data)
-{ connectSignal (object, name, callback, data, true); }
-
void YGWidget::blockSignals()
{ if (m_signals) m_signals->block(); }
void YGWidget::unblockSignals()
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGWidget.h
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGWidget.h?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGWidget.h (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGWidget.h Mon Dec 22 20:46:42 2008
@@ -17,61 +17,43 @@
GType type, const char *property_name, ...);
virtual ~YGWidget();
- virtual GtkWidget *getWidget() { return m_widget; }
- // containers should use this call rather than getWidget()
- GtkWidget *getLayout() { return m_adj_size; }
-
- // Get the YGWidget associated with a YWidget
+ // get the YGWidget associated with a YWidget
static YGWidget *get (YWidget *y_widget);
- // debug
- const char *getWidgetName() const { return m_ywidget->widgetClass(); }
- virtual string getDebugLabel() const // let YWidget::debugLabel() be overloaded
- { // container debug labels are worse than useless
- if (m_ywidget->hasChildren()) return string();
- return m_ywidget->debugLabel(); }
+ virtual inline GtkWidget *getWidget() { return m_widget; }
+ GtkWidget *getLayout() { return m_adj_size; } // add this to a container
+ virtual GtkWidget *getContainer() { return m_widget; } // add children here
- // for YWidget
+ // overload YWidget methods with these ones
virtual bool doSetKeyboardFocus();
virtual void doSetEnabled (bool enabled);
+ virtual void doSetUseBoldFont (bool useBold);
virtual void doAddChild (YWidget *child, GtkWidget *container);
virtual void doRemoveChild (YWidget *child, GtkWidget *container);
- void doSetUseBoldFont (bool useBold);
- // Event handling
- enum EventFlags {
- DELAY_EVENT = 2, IGNORE_NOTIFY_EVENT = 4, IF_NOT_PENDING_EVENT = 8,
- NORMAL_EVENT = 0 };
- void emitEvent (YEvent::EventReason reason, EventFlags flags = NORMAL_EVENT);
-
- // Signal registration (use "BlockEvents (this)" when to block these)
- void connect (GObject *object, const char *name,
- GCallback callback, gpointer data);
- inline void connect (GtkWidget *widget, const char *name,
- GCallback callback, gpointer data)
- { connect (G_OBJECT (widget), name, callback, data); }
- void connect_after (GObject *object, const char *name,
- GCallback callback, gpointer data);
- inline void connect_after (GtkWidget *widget, const char *name,
- GCallback callback, gpointer data)
- { connect_after (G_OBJECT (widget), name, callback, data); }
+ // layout
+ virtual int doPreferredSize (YUIDimension dimension);
+ virtual void doSetSize (int width, int height);
+
+ // debug
+ const char *getWidgetName() const { return m_ywidget->widgetClass(); }
+ virtual string getDebugLabel() const // let YWidget::debugLabel() be overloaded
+ { if (m_ywidget->hasChildren()) return string(); return m_ywidget->debugLabel(); }
- // Aesthetics
+ // aesthetics
void setBorder (unsigned int border); // in pixels
virtual unsigned int getMinSize (YUIDimension dim) { return 0; }
protected:
- // layout
- virtual int getPreferredSize (YUIDimension dimension);
- void doSetSize (int width, int height);
-
- GtkWidget *m_widget; // associated GtkWidget -- use getWidget()
- GtkWidget *m_adj_size; // installed on m_widget, allows better size constrains
- YWidget *m_ywidget; // associated YWidget
+ // event emission
+ enum EventFlags
+ { DELAY_EVENT = 2, IGNORE_NOTIFY_EVENT = 4, IF_NOT_PENDING_EVENT = 8 };
+ void emitEvent (YEvent::EventReason reason, EventFlags flags = (EventFlags) 0);
+ // signal registration; use "BlockEvents (this)" to temp block all signals
friend struct BlockEvents;
- void connectSignal (GObject *object, const char *name,
- GCallback callback, gpointer data, bool after);
+ void connect (gpointer object, const char *name,
+ GCallback callback, gpointer data, bool after = true);
void blockSignals();
void unblockSignals();
struct Signals;
@@ -80,17 +62,20 @@
void construct (YWidget *ywidget, YWidget *yparent,
GType type, const char *property_name, va_list args);
+
+ // data
+ GtkWidget *m_widget, *m_adj_size; // associated GtkWidget, and adjustment for borders
+ YWidget *m_ywidget; // associated YWidget
};
struct BlockEvents
{
-BlockEvents (YGWidget *widget)
- : m_widget (widget)
+ BlockEvents (YGWidget *widget) : m_widget (widget)
{ m_widget->blockSignals(); }
-~BlockEvents()
+ ~BlockEvents()
{ m_widget->unblockSignals(); }
-private:
- YGWidget *m_widget;
+
+ private: YGWidget *m_widget;
};
/*
@@ -98,15 +83,15 @@
* methods and the (multiply inherited) YGWidget base implementation
* for GTK+.
*/
-#define YGWIDGET_IMPL_COMMON \
+#define YGWIDGET_IMPL_COMMON(ParentClass) \
virtual bool setKeyboardFocus() { \
return doSetKeyboardFocus(); } \
virtual void setEnabled (bool enabled) { \
- YWidget::setEnabled (enabled); \
+ ParentClass::setEnabled (enabled); \
doSetEnabled (enabled); \
} \
- virtual int preferredWidth() { return getPreferredSize (YD_HORIZ); } \
- virtual int preferredHeight() { return getPreferredSize (YD_VERT); } \
+ virtual int preferredWidth() { return doPreferredSize (YD_HORIZ); } \
+ virtual int preferredHeight() { return doPreferredSize (YD_VERT); } \
virtual void setSize (int width, int height) { doSetSize (width, height); }
#define YGWIDGET_IMPL_USE_BOLD(ParentClass) \
@@ -115,16 +100,15 @@
doSetUseBoldFont (useBold); \
}
-// for containers
-#define YGWIDGET_IMPL_CHILD_ADDED(ParentClass, container) \
+#define YGWIDGET_IMPL_CONTAINER(ParentClass) \
+ YGWIDGET_IMPL_COMMON (ParentClass) \
virtual void addChild (YWidget *ychild) { \
ParentClass::addChild (ychild); \
- doAddChild (ychild, container); \
- }
-#define YGWIDGET_IMPL_CHILD_REMOVED(ParentClass, container) \
+ doAddChild (ychild, getContainer()); \
+ } \
virtual void removeChild (YWidget *ychild) { \
ParentClass::removeChild (ychild); \
- doRemoveChild (ychild, container); \
+ doRemoveChild (ychild, getContainer()); \
}
/* This is a convenience class that allows for a label next to the
@@ -138,7 +122,7 @@
GType type, const char *property_name, ...);
virtual ~YGLabeledWidget () {}
- virtual GtkWidget* getWidget() { return m_field; }
+ virtual inline GtkWidget* getWidget() { return m_field; }
void setLabelVisible (bool show);
void setBuddy (GtkWidget *widget);
@@ -152,9 +136,9 @@
YUIDimension m_orientation;
};
-#define YGLABEL_WIDGET_IMPL_SET_LABEL_CHAIN(ParentClass) \
+#define YGLABEL_WIDGET_IMPL(ParentClass) \
+ YGWIDGET_IMPL_COMMON (ParentClass) \
virtual void setLabel (const std::string &label) { \
- IMPL \
ParentClass::setLabel (label); \
doSetLabel (label); \
}
@@ -171,7 +155,7 @@
GType type, const char *property_name, ...);
virtual ~YGScrolledWidget () {}
- virtual GtkWidget *getWidget() { return m_widget; }
+ virtual inline GtkWidget *getWidget() { return m_widget; }
// you should use this method, not gtk_scrolled_window_set...
void setPolicy (GtkPolicyType hpolicy, GtkPolicyType vpolicy);
Modified: branches/SuSE-Code-11-Branch/gtk/src/YGWizard.cc
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/YGWizard.cc?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/YGWizard.cc (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/YGWizard.cc Mon Dec 22 20:46:42 2008
@@ -292,9 +292,7 @@
ygtk_wizard_set_child (getWizard(), YGWidget::get (ychild)->getLayout());
}
- YGWIDGET_IMPL_COMMON
- YGWIDGET_IMPL_CHILD_ADDED (YWizard, getWidget())
- YGWIDGET_IMPL_CHILD_REMOVED (YWizard, getWidget())
+ YGWIDGET_IMPL_CONTAINER (YWizard)
};
YWizard *YGOptionalWidgetFactory::createWizard (YWidget *parent,
Modified: branches/SuSE-Code-11-Branch/gtk/src/ygtkfixed.c
URL: http://svn.opensuse.org/viewcvs/yast/branches/SuSE-Code-11-Branch/gtk/src/ygtkfixed.c?rev=54339&r1=54338&r2=54339&view=diff
==============================================================================
--- branches/SuSE-Code-11-Branch/gtk/src/ygtkfixed.c (original)
+++ branches/SuSE-Code-11-Branch/gtk/src/ygtkfixed.c Mon Dec 22 20:46:42 2008
@@ -33,6 +33,7 @@
if (child->widget == widget)
return child;
}
+ g_warning ("YGtkFixed: could not find child.");
return NULL;
}
@@ -96,7 +97,6 @@
YGtkFixed *fixed = YGTK_FIXED (widget);
fixed->preferred_size_cb (fixed, &requisition->width, &requisition->height,
fixed->data);
-
GTK_WIDGET_CLASS (ygtk_fixed_parent_class)->size_request (widget, requisition);
}
--
To unsubscribe, e-mail: yast-commit+unsubscribe@opensuse.org
For additional commands, e-mail: yast-commit+help@opensuse.org