[gnome-software] category tile: Derive directly from GtkButton
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] category tile: Derive directly from GtkButton
- Date: Sun, 3 Aug 2014 12:41:38 +0000 (UTC)
commit 9060c8295f87c7adcd7b14d9d1596217ded51312
Author: Kalev Lember <kalevlember gmail com>
Date: Sun Aug 3 12:42:38 2014 +0200
category tile: Derive directly from GtkButton
src/category-tile.ui | 21 ++++++++-------------
src/gs-category-tile.c | 30 +-----------------------------
src/gs-category-tile.h | 6 ++----
3 files changed, 11 insertions(+), 46 deletions(-)
---
diff --git a/src/category-tile.ui b/src/category-tile.ui
index 98f160e..2c825f0 100644
--- a/src/category-tile.ui
+++ b/src/category-tile.ui
@@ -1,22 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<interface>
<!-- interface-requires gtk+ 3.10 -->
- <template class="GsCategoryTile" parent="GtkBin">
+ <template class="GsCategoryTile" parent="GtkButton">
<property name="visible">True</property>
+ <style>
+ <class name="view"/>
+ <class name="tile"/>
+ </style>
<child>
- <object class="GtkButton" id="button">
+ <object class="GtkLabel" id="label">
<property name="visible">True</property>
- <style>
- <class name="view"/>
- <class name="tile"/>
- </style>
- <child>
- <object class="GtkLabel" id="label">
- <property name="visible">True</property>
- <property name="margin">12</property>
- <property name="xalign">0</property>
- </object>
- </child>
+ <property name="margin">12</property>
+ <property name="xalign">0</property>
</object>
</child>
</template>
diff --git a/src/gs-category-tile.c b/src/gs-category-tile.c
index 34a8284..14cca99 100644
--- a/src/gs-category-tile.c
+++ b/src/gs-category-tile.c
@@ -29,18 +29,10 @@
struct _GsCategoryTilePrivate
{
GsCategory *cat;
- GtkWidget *button;
GtkWidget *label;
};
-G_DEFINE_TYPE_WITH_PRIVATE (GsCategoryTile, gs_category_tile, GTK_TYPE_BIN)
-
-enum {
- SIGNAL_CLICKED,
- SIGNAL_LAST
-};
-
-static guint signals [SIGNAL_LAST] = { 0 };
+G_DEFINE_TYPE_WITH_PRIVATE (GsCategoryTile, gs_category_tile, GTK_TYPE_BUTTON)
GsCategory *
gs_category_tile_get_category (GsCategoryTile *tile)
@@ -83,41 +75,21 @@ gs_category_tile_destroy (GtkWidget *widget)
}
static void
-button_clicked (GsCategoryTile *tile)
-{
- g_signal_emit (tile, signals[SIGNAL_CLICKED], 0);
-}
-
-static void
gs_category_tile_init (GsCategoryTile *tile)
{
- GsCategoryTilePrivate *priv;
-
gtk_widget_set_has_window (GTK_WIDGET (tile), FALSE);
gtk_widget_init_template (GTK_WIDGET (tile));
- priv = gs_category_tile_get_instance_private (tile);
- g_signal_connect_swapped (priv->button, "clicked",
- G_CALLBACK (button_clicked), tile);
}
static void
gs_category_tile_class_init (GsCategoryTileClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
widget_class->destroy = gs_category_tile_destroy;
- signals [SIGNAL_CLICKED] =
- g_signal_new ("clicked",
- G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GsCategoryTileClass, clicked),
- NULL, NULL, g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE, 0);
-
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Software/category-tile.ui");
- gtk_widget_class_bind_template_child_private (widget_class, GsCategoryTile, button);
gtk_widget_class_bind_template_child_private (widget_class, GsCategoryTile, label);
}
diff --git a/src/gs-category-tile.h b/src/gs-category-tile.h
index 5426fae..a7b6b62 100644
--- a/src/gs-category-tile.h
+++ b/src/gs-category-tile.h
@@ -41,15 +41,13 @@ typedef struct _GsCategoryTilePrivate GsCategoryTilePrivate;
struct _GsCategoryTile
{
- GtkBin parent;
+ GtkButton parent;
GsCategoryTilePrivate *priv;
};
struct _GsCategoryTileClass
{
- GtkBinClass parent_class;
-
- void (*clicked) (GsCategoryTile *tile);
+ GtkButtonClass parent_class;
};
GType gs_category_tile_get_type (void);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]