r473 - trunk/src/target/OM-2007/applications/openmoko-mainmenu/src
tongsong_li at gta01.hmw-consulting.de
tongsong_li at gta01.hmw-consulting.de
Tue Dec 26 11:16:30 CET 2006
Author: tongsong_li
Date: 2006-12-26 11:16:18 +0100 (Tue, 26 Dec 2006)
New Revision: 473
Modified:
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.c
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.h
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.c
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.h
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop_item.h
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c
trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/support.c
Log:
essage=modify vfolder parse methords. by sunzhiyong <sunzhiyong at fic-sh.com.cn>
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.c 2006-12-26 09:16:41 UTC (rev 472)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.c 2006-12-26 10:16:18 UTC (rev 473)
@@ -29,12 +29,20 @@
#include "callbacks.h"
#include "mokoiconview.h"
-gboolean test = FALSE;
+gboolean close_page_hide = TRUE;
void
moko_wheel_bottom_press_cb (GtkWidget *self, MokoMainmenuApp *mma)
{
- if (test) {
+ if (mma->mm->current != mma->mm->top_item)
+ {
+ g_debug ("----------current name %s", mma->mm->current->name);
+ g_debug ("----------Top item name %s", mma->mm->top_item->name);
+
+ mma->mm->current = mokodesktop_item_get_parent(mma->mm->current);
+ moko_main_menu_update(mma->mm, mma->mm->current);
+ }
+ else if (close_page_hide) {
gtk_widget_hide (mma->close);
gtk_widget_show (mma->mm);
}
@@ -42,23 +50,23 @@
gtk_widget_hide (mma->mm);
gtk_widget_show (mma->close);
}
-
-test = !test;
-
+ close_page_hide = !close_page_hide;
}
void
moko_wheel_left_up_press_cb (GtkWidget *self, MokoMainmenuApp *mma)
{
+
+ g_signal_emit_by_name (G_OBJECT(mma->mm->icon_view), "move-cursor", GTK_MOVEMENT_DISPLAY_LINES, -1);
+ gtk_window_present (mma->window);
gtk_widget_grab_focus (mma->mm->icon_view);
- g_signal_emit_by_name (G_OBJECT(mma->mm->icon_view), "move-cursor", GTK_MOVEMENT_DISPLAY_LINES, -1);
}
void
moko_wheel_right_down_press_cb (GtkWidget *self, MokoMainmenuApp *mma)
{
- gtk_widget_grab_focus (mma->mm->icon_view);
+ //gtk_widget_grab_focus (mma->mm->icon_view);
g_signal_emit_by_name (G_OBJECT(mma->mm->icon_view), "move-cursor", GTK_MOVEMENT_DISPLAY_LINES, 1);
}
@@ -68,7 +76,7 @@
if (mma->mm)
{
moko_main_menu_clear (mma->mm);
- gtk_widget_destroy (mma->mm);
+ //gtk_widget_destroy (mma->mm);
}
if (mma->close)
gtk_widget_destroy (mma->close);
@@ -98,21 +106,64 @@
g_signal_emit_by_name (G_OBJECT(mm->icon_view), "move-cursor", GTK_MOVEMENT_DISPLAY_LINES, 1);
}
+void
+moko_icon_view_item_acitvated_cb(GtkIconView *icon_view,
+ GtkTreePath *path, MokoMainmenuApp *mma)
+{
+ g_debug ("call moko_item_acitvated_cb");
+ MokoDesktopItem *select_item = mokodesktop_item_get_child (mma->mm->current);
+ gint index, i;
+
+ index = moko_icon_view_get_cursor_positon (icon_view);
+
+ for (i = 1; i < index; i++)
+ {
+ select_item = mokodesktop_item_get_next_sibling (select_item);
+ }
+
+ g_debug ("select_item name %s", select_item->name);
+
+ if (select_item->type == ITEM_TYPE_FOLDER)
+ {
+ g_debug ("current name %s------------------", mma->mm->current->name);
+ mma->mm->current = select_item;
+ g_debug ("current name %s------------------", mma->mm->current->name);
+ moko_main_menu_update(mma->mm, select_item);
+ }
+ //else if (select_item->type == )
+
+
+}
+
+void
+moko_icon_view_selection_changed_cb(GtkIconView *iconview,
+ MokoMainmenuApp *mma)
+{
+ gint total = 0, cursor = 0;
+ char item_total[6];
+
+ total = moko_icon_view_get_total_items (mma->mm->icon_view);
+ cursor = moko_icon_view_get_cursor_positon (mma->mm->icon_view);
+
+ if (cursor <0)
+ cursor = 0;
+
+ snprintf (item_total, 6, "%d/%d", cursor, total);
+ moko_set_label_content (mma->mm->item_total, item_total);
+}
+
/*test*/
+
void
-moko_item_select_cb(GtkIconView *icon_view, GtkTreePath *path, gpointer data) {
+moko_item_select_cb(GtkIconView *icon_view, GtkTreePath *path, MokoMainmenuApp *mma) {
g_debug ("call moko_item_select_cb");
}
gboolean
-moko_activate_cursor_item_cb(GtkIconView *iconview, gpointer user_data) {
- g_debug ("call moko_active_cursor_item_cb");
+moko_icon_view_activate_cursor_item_cb(GtkIconView *iconview, MokoMainmenuApp *mma) {
+ g_debug ("call moko_active_cursor_item_cb--------------");
}
-void
-moko_item_acitvated_cb(GtkIconView *iconview, GtkTreePath *arg1, gpointer user_data) {
- g_debug ("call moko_item_acitvated_cb");
- }
//"move-cursor"
gboolean
@@ -122,43 +173,29 @@
}
//"select-all"
void
-moko_select_all_cb(GtkIconView *iconview, gpointer user_data) {
+moko_select_all_cb(GtkIconView *iconview, MokoMainmenuApp *mma) {
g_debug ("call moko_select_all_cb");
}
//"select-cursor-item"
void
-moko_select_cursor_item_cb(GtkIconView *iconview, gpointer user_data) {
- g_debug ("call moko_select_cursor_item_cb");
+moko_select_cursor_item_cb(GtkIconView *iconview, MokoMainmenuApp *mma) {
+ g_debug ("call moko_select_cursor_item_cb---------------------");
}
-//"selection-changed"
-void
-moko_icon_view_selection_changed_cb(GtkIconView *iconview, MokoMainmenuApp *mma) {
- g_debug ("call moko_selection_changed_cb");
- gint total = 0, cursor = 0;
- char item_total[6];
- total = moko_icon_view_get_total_items (mma->mm->icon_view);
- cursor = moko_icon_view_get_cursor_positon (mma->mm->icon_view);
-
- snprintf (item_total, 6, "%d/%d", cursor, total);
- moko_set_label_content (mma->mm->item_total, item_total);
-
- }
-
//"set-scroll-adjustments"
void
moko_set_scroll_adjustments_cb(GtkIconView *iconview,
- GtkAdjustment *arg1, GtkAdjustment *arg2, gpointer user_data) {
+ GtkAdjustment *arg1, GtkAdjustment *arg2, MokoMainmenuApp *mma) {
g_debug ("call moko_set_scroll_adjustments_cb");
}
//"toggle-cursor-item"
void
-moko_toggle_cursor_item_cb(GtkIconView *iconview, gpointer user_data) {
+moko_toggle_cursor_item_cb(GtkIconView *iconview, MokoMainmenuApp *mma) {
g_debug ("call moko_toggle_cursor_cb");
}
//"unselect-all"
void
-moko_unselect_all_cb(GtkIconView *iconview, gpointer user_data) {
+moko_unselect_all_cb(GtkIconView *iconview, MokoMainmenuApp *mma) {
g_debug ("moko_unselect_all_cb");
}
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.h 2006-12-26 09:16:41 UTC (rev 472)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.h 2006-12-26 10:16:18 UTC (rev 473)
@@ -42,25 +42,28 @@
void
-moko_item_select_cb(GtkIconView *icon_view, GtkTreePath *path, gpointer data);
+moko_item_select_cb(GtkIconView *icon_view, GtkTreePath *path, MokoMainmenuApp *mma);
+
+void
+moko_icon_view_item_acitvated_cb(GtkIconView *iconview,
+ GtkTreePath *path, MokoMainmenuApp *mma);
+
+/*test*/
gboolean /*will be call when Enter key pressed*/
-moko_activate_cursor_item_cb(GtkIconView *iconview, gpointer user_data);
+moko_activate_cursor_item_cb(GtkIconView *iconview, MokoMainmenuApp *mma);
-void /*double click callback*/
-moko_item_acitvated_cb(GtkIconView *iconview, GtkTreePath *arg1, gpointer user_data);
-
//"move-cursor"
gboolean
moko_move_cursor_cb(GtkIconView *iconview, GtkMovementStep arg1, gint arg2, MokoMainmenuApp *mma);
//"select-all"
void
-moko_select_all_cb(GtkIconView *iconview, gpointer user_data);
+moko_select_all_cb(GtkIconView *iconview, MokoMainmenuApp *mma);
//"select-cursor-item"
void
-moko_select_cursor_item_cb(GtkIconView *iconview, gpointer user_data);
+moko_select_cursor_item_cb(GtkIconView *iconview, MokoMainmenuApp *mma);
//"selection-changed"
void
@@ -68,15 +71,15 @@
//"set-scroll-adjustments"
void
-moko_set_scroll_adjustments_cb(GtkIconView *iconview, GtkAdjustment *arg1, GtkAdjustment *arg2, gpointer user_data);
+moko_set_scroll_adjustments_cb(GtkIconView *iconview, GtkAdjustment *arg1, GtkAdjustment *arg2, MokoMainmenuApp *mma);
//"toggle-cursor-item"
void
-moko_toggle_cursor_item_cb(GtkIconView *iconview, gpointer user_data);
+moko_toggle_cursor_item_cb(GtkIconView *iconview, MokoMainmenuApp *mma);
//"unselect-all"
void
-moko_unselect_all_cb(GtkIconView *iconview, gpointer user_data);
+moko_unselect_all_cb(GtkIconView *iconview, MokoMainmenuApp *mma);
#endif /*callbacks.h*/
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.c 2006-12-26 09:16:41 UTC (rev 472)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.c 2006-12-26 10:16:18 UTC (rev 473)
@@ -45,6 +45,7 @@
mma->window = MOKO_FINGER_WINDOW(moko_finger_window_new());
gtk_widget_show (GTK_WIDGET (mma->window));
mma->wheel = moko_finger_window_get_wheel (mma->window);
+ //GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET (mma->wheel), GTK_CAN_FOCUS);
mma->toolbox = moko_finger_window_get_toolbox(mma->window);
for (i=0; i<4; i++)
@@ -73,7 +74,10 @@
// G_CALLBACK (moko_move_cursor_cb), mma);
g_signal_connect (mma->mm->icon_view, "selection-changed",
G_CALLBACK (moko_icon_view_selection_changed_cb), mma);
-
+ //g_signal_connect (mma->mm->icon_view, "select-cursor-item",
+ // G_CALLBACK (moko_select_cursor_item_cb), mma);
+ g_signal_connect (mma->mm->icon_view, "item_activated",
+ G_CALLBACK (moko_icon_view_item_acitvated_cb), mma);
moko_finger_window_set_contents( mma->window, GTK_WIDGET(mma->mm));
moko_finger_window_set_contents( mma->window, GTK_WIDGET(mma->close));
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c 2006-12-26 09:16:41 UTC (rev 472)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c 2006-12-26 10:16:18 UTC (rev 473)
@@ -92,7 +92,8 @@
*@return none
*/
void
-moko_main_menu_init(MokoMainMenu *mm) {
+moko_main_menu_init(MokoMainMenu *mm)
+{
PangoFontDescription* PangoFont = pango_font_description_new(); //get system default PangoFontDesc
GtkEventBox *eventbox;
GtkButton *btn[2];// Use to test, delete later.
@@ -109,6 +110,8 @@
/* Build Lists (parse .directory and .desktop files) */
ret = mokodesktop_init(mm->top_item, ITEM_TYPE_CNT);
+
+ mm->current = mm->top_item;
mm->section_name = gtk_label_new ("Main Menu");
gtk_widget_show (mm->section_name);
@@ -135,7 +138,7 @@
mm->item_total = gtk_label_new ("0/0");
//gtk_widget_show (mm->item_total);
gtk_label_set_justify (mm->item_total, GTK_JUSTIFY_RIGHT);
- //gtk_label_set_width_chars (mm->item_total, ITME_TOTAL_WIDTH);
+ gtk_label_set_width_chars (mm->item_total, ITME_TOTAL_WIDTH);
gtk_misc_set_alignment (GTK_MISC (mm->item_total), ITEM_TOTAL_ALG_X, ITEM_TOTAL_ALG_Y);
if (PangoFont) {
pango_font_description_set_size (PangoFont, FONT_SIZE_ITEM);
@@ -160,9 +163,9 @@
mm->list_store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER);
- moko_icon_view_set_pixbuf_column (GTK_ICON_VIEW (mm->icon_view), PIXBUF_COLUMN);
- moko_icon_view_set_text_column (GTK_ICON_VIEW (mm->icon_view), TEXT_COLUMN);
- moko_icon_view_set_model (GTK_ICON_VIEW (mm->icon_view), GTK_TREE_MODEL (mm->list_store));
+ moko_icon_view_set_pixbuf_column (mm->icon_view, PIXBUF_COLUMN);
+ moko_icon_view_set_text_column (mm->icon_view, TEXT_COLUMN);
+ moko_icon_view_set_model (mm->icon_view, GTK_TREE_MODEL (mm->list_store));
mm->scrolled = gtk_scrolled_window_new (NULL, NULL);
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (mm->scrolled),
@@ -175,19 +178,19 @@
gtk_box_pack_start (mm, eventbox, FALSE, FALSE, 0);
gtk_container_add (eventbox, mm->hbox);
- gtk_box_pack_start (mm->hbox, btn[0], FALSE, FALSE, 0);
- gtk_box_pack_start (mm->hbox, btn[1], FALSE, FALSE, 0);
+ //gtk_box_pack_start (mm->hbox, btn[0], FALSE, FALSE, 0);
+ //gtk_box_pack_start (mm->hbox, btn[1], FALSE, FALSE, 0);
gtk_box_pack_start (mm->hbox, mm->section_name, TRUE, TRUE, 0);
gtk_box_pack_end (mm->hbox, mm->item_total, FALSE, FALSE, 0);
gtk_box_pack_end (mm, mm->scrolled, TRUE, TRUE, 0);
- g_signal_connect (btn[0], "pressed", G_CALLBACK(moko_up_btn_cb), mm);
- g_signal_connect (btn[1], "pressed", G_CALLBACK(moko_down_btn_cb), mm);
+ // g_signal_connect (btn[0], "pressed", G_CALLBACK(moko_up_btn_cb), mm);
+ // g_signal_connect (btn[1], "pressed", G_CALLBACK(moko_down_btn_cb), mm);
//moko_sample_model_fill(mm->list_store);
gtk_widget_show (mm);
- moko_main_menu_update (mm, mm->top_item);
+ moko_main_menu_update (mm, mm->current);
if (PangoFont)
pango_font_description_free (PangoFont);
@@ -196,7 +199,8 @@
/* Construction */
GtkWidget*
-moko_main_menu_new() {
+moko_main_menu_new()
+{
return GTK_WIDGET(g_object_new(moko_main_menu_get_type(), NULL));
}
@@ -219,31 +223,49 @@
*
*/
gboolean
-moko_main_menu_update(MokoMainMenu *mm, MokoDesktopItem *item) {
+moko_main_menu_update(MokoMainMenu *mm, MokoDesktopItem *item)
+{
MokoDesktopItem *item_new;
-
g_debug("mokodesktop: item [%d][%s][%s]\n", item->type, item->name, item->icon_name);
item_new = item->item_child;
-
+ g_debug("mokodesktop: item [%d][%s][%s]\n", item_new->type, item_new->name, item_new->icon_name);
+ g_debug ("test");
+
if (item->type == ITEM_TYPE_ROOT)
+ {
+ g_debug ("23test");
+
moko_set_label_content (mm->section_name, "Main Menu");
+ }
else if (item->type == ITEM_TYPE_FOLDER)
+ {
+ g_debug ("123test");
+
moko_set_label_content (mm->section_name, item->name);
+ }
else
return FALSE; // neither ROOT nor FOLDER
-
- mokodesktop_items_enumerate_siblings(item->item_child, item_new){
- char path[512];
- g_debug("mokodesktop: item [%d][%s][%s][%s]\n",
- item_new->type, item_new->name,
- item_new->icon_name, item_new->item_parent->name);
- snprintf (path, 512, "%s/%s", PIXMAP_PATH, item_new->icon_name);
- moko_fill_model(mm->list_store, path, item_new->name);
+g_debug ("test");
+ if (mm->list_store)
+ gtk_list_store_clear (mm->list_store);
+ g_debug ("test");
+
+ mokodesktop_items_enumerate_siblings(item->item_child, item_new)
+ {
+ g_debug ("11test");
+
+ char path[512];
+ //g_debug("mokodesktop: item [%d][%s][%s][%s]\n",
+ // item_new->type, item_new->name,
+ // item_new->icon_name, item_new->item_parent->name);
+ snprintf (path, 512, "%s/%s", PIXMAP_PATH, item_new->icon_name);
+ moko_fill_model(mm->list_store, path, item_new->name, item_new);
- g_debug("item [%s][%s]\n", item_new->name, path);
+ //g_debug("item [%s][%s]\n", item_new->name, path);
}
-
+ g_debug ("test");
+
return TRUE;
}
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.h 2006-12-26 09:16:41 UTC (rev 472)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.h 2006-12-26 10:16:18 UTC (rev 473)
@@ -33,7 +33,7 @@
enum {
PIXBUF_COLUMN,
TEXT_COLUMN,
- PATH_COLUMN,
+ OBJECT_COLUMN,
NUM_COLs
};
@@ -74,6 +74,7 @@
GtkVBox vbox;
MokoDesktopItem *top_item;
+ MokoDesktopItem *current;
MokoIconView *icon_view;
GtkListStore *list_store;
GtkWidget *scrolled;
@@ -84,7 +85,7 @@
struct _MokoMainMenuClass {
GtkVBoxClass parent_class;
- //GtkWidgetClass parent_class;
+
void(*moko_main_menu_function)(MokoMainMenu *mm);
};
@@ -94,6 +95,9 @@
GtkWidget*
moko_main_menu_new ();
+gboolean
+moko_main_menu_update(MokoMainMenu *mm, MokoDesktopItem *item);
+
G_END_DECLS
#endif /*main_menu.h*/
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop_item.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop_item.h 2006-12-26 09:16:41 UTC (rev 472)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop_item.h 2006-12-26 10:16:18 UTC (rev 473)
@@ -25,11 +25,9 @@
void
mokodesktop_item_free(MokoDesktopItem *item);
-
Bool
mokodesktop_item_folder_has_contents(MokoDesktopItem *folder);
-
void
mokodesktop_item_folder_contents_free( MokoDesktopItem *top_head_item,
MokoDesktopItem *item);
@@ -41,8 +39,6 @@
void *data,
int type);
-
-
void
mokodesktop_items_append ( MokoDesktopItem *item_head,
MokoDesktopItem *item );
@@ -51,7 +47,6 @@
mokodesktop_items_insert_after ( MokoDesktopItem *suffix_item,
MokoDesktopItem *item );
-
void
mokodesktop_items_append_to_folder ( MokoDesktopItem *item_folder,
MokoDesktopItem *item );
@@ -73,7 +68,6 @@
MokoDesktopItem *
mokodesktop_item_get_parent(MokoDesktopItem *item);
-
MokoDesktopItem *
mokodesktop_item_get_child(MokoDesktopItem *item);
@@ -111,7 +105,6 @@
void *
mokodesktop_item_get_user_data (MokoDesktopItem *item);
-
void
mokodesktop_item_set_type (MokoDesktopItem *item,
int type);
@@ -119,8 +112,6 @@
int
mokodesktop_item_get_type (MokoDesktopItem *item);
-
-
void
mokodesktop_item_set_activate_callback (MokoDesktopItem *item,
MokoDesktopCB activate_cb);
@@ -130,6 +121,4 @@
void
mbdesktop_item_folder_prev_activate_cb(void *data1, void *data2);
-
-
#endif
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c 2006-12-26 09:16:41 UTC (rev 472)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c 2006-12-26 10:16:18 UTC (rev 473)
@@ -437,6 +437,43 @@
g_value_set_boolean (return_value, v_return);
}
+void
+moko_marshal_BOOLEAN__VOID (GClosure *closure,
+ GValue *return_value,
+ guint n_param_values,
+ const GValue *param_values,
+ gpointer invocation_hint,
+ gpointer marshal_data)
+{
+ typedef gboolean (*GMarshalFunc_BOOLEAN__VOID) (gpointer data1,
+ gpointer data2);
+ register GMarshalFunc_BOOLEAN__VOID callback;
+ register GCClosure *cc = (GCClosure*) closure;
+ register gpointer data1, data2;
+ gboolean v_return;
+
+ g_return_if_fail (return_value != NULL);
+ g_return_if_fail (n_param_values == 1);
+
+ if (G_CCLOSURE_SWAP_DATA (closure))
+ {
+ data1 = closure->data;
+ data2 = g_value_peek_pointer (param_values + 0);
+ }
+ else
+ {
+ data1 = g_value_peek_pointer (param_values + 0);
+ data2 = closure->data;
+ }
+ callback = (GMarshalFunc_BOOLEAN__VOID) (marshal_data ? marshal_data : cc->callback);
+
+ v_return = callback (data1,
+ data2);
+
+ g_value_set_boolean (return_value, v_return);
+}
+
+
static GtkContainerClass *parent_class = NULL;
static guint moko_icon_view_signals[LAST_SIGNAL] = { 0 };
@@ -565,23 +602,23 @@
G_PARAM_READWRITE));
/**
- * MokoIconView::max-text-len:
+ * MokoIconViewItem::index:
*
- * Maximum text column width.
+ * index of item.
*
*/
g_object_class_install_property (gobject_class,
PPOP_CURSOR_POSITION,
- g_param_spec_int ("index",
+ g_param_spec_int ("index",
P_("index of cursor item"),
P_(""),
-1, G_MAXINT, -1,
G_PARAM_READABLE));
/**
- * MokoIconView::max-text-len:
+ * MokoIconView::total-items:
*
- * Maximum text column width.
+ * total items of MokoIconView.
*
*/
g_object_class_install_property (gobject_class,
@@ -819,6 +856,16 @@
G_TYPE_NONE, 2,
GTK_TYPE_ADJUSTMENT, GTK_TYPE_ADJUSTMENT);
+ moko_icon_view_signals[ITEM_ACTIVATED] =
+ g_signal_new ("item_activated",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (MokoIconViewClass, item_activated),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__BOXED,
+ G_TYPE_NONE, 1,
+ GTK_TYPE_TREE_PATH);
+
moko_icon_view_signals[MOVE_CURSOR] =
g_signal_new ("move_cursor",
G_TYPE_FROM_CLASS (gobject_class),
@@ -838,8 +885,46 @@
NULL, NULL,
g_cclosure_marshal_VOID__VOID,
G_TYPE_NONE, 0);
+
+ moko_icon_view_signals[SELECT_CURSOR_ITEM] =
+ g_signal_new ("select_cursor_item",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (MokoIconViewClass, select_cursor_item),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ moko_icon_view_signals[TOGGLE_CURSOR_ITEM] =
+ g_signal_new ("toggle_cursor_item",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (MokoIconViewClass, toggle_cursor_item),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE, 0);
+
+ moko_icon_view_signals[ACTIVATE_CURSOR_ITEM] =
+ g_signal_new ("activate_cursor_item",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
+ G_STRUCT_OFFSET (MokoIconViewClass, activate_cursor_item),
+ NULL, NULL,
+ moko_marshal_BOOLEAN__VOID,
+ G_TYPE_BOOLEAN, 0);
/*Only for test delete later*/
+ gtk_binding_entry_add_signal (binding_set, GDK_a, GDK_CONTROL_MASK, "select_all", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_a, GDK_CONTROL_MASK | GDK_SHIFT_MASK, "unselect_all", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_space, 0, "select_cursor_item", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_space, GDK_CONTROL_MASK, "toggle_cursor_item", 0);
+
+ gtk_binding_entry_add_signal (binding_set, GDK_Return, 0, "activate_cursor_item", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_ISO_Enter, 0, "activate_cursor_item", 0);
+ gtk_binding_entry_add_signal (binding_set, GDK_KP_Enter, 0, "activate_cursor_item", 0);
+
+
+/*Only for test delete later*/
moko_icon_view_add_move_binding (binding_set, GDK_Up, 0,
GTK_MOVEMENT_DISPLAY_LINES, -1);
moko_icon_view_add_move_binding (binding_set, GDK_KP_Up, 0,
@@ -912,17 +997,6 @@
if (!self) g_free (self);
}
-/*
-*
-*
-*/
-void
-moko_icon_view_update(GtkListStore *store)
-{
-
-}
-
-
/* GtkWidget signals */
static void
moko_icon_view_realize (GtkWidget *widget)
@@ -1004,8 +1078,8 @@
icon_view->priv->bin_window = NULL;
/* GtkWidget::unrealize destroys children and widget->window */
-// if (GTK_WIDGET_CLASS (parent_class)->unrealize)
- //(* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
+ if (GTK_WIDGET_CLASS (parent_class)->unrealize)
+ (* GTK_WIDGET_CLASS (parent_class)->unrealize) (widget);
}
static void
@@ -1088,7 +1162,7 @@
else
state = GTK_STATE_ACTIVE;
- if (icon_view->priv->pixbuf_column != -1)
+ if (icon_view->priv->pixbuf_column != -1) //FIXME: rewrite this function
{
pixbuf = moko_icon_view_get_item_icon (icon_view, item);
@@ -1103,10 +1177,8 @@
scaled = gdk_pixbuf_scale_simple (pixbuf,
scaled_w, scaled_h, GDK_INTERP_NEAREST);
- if (item->selected && icon_view->priv->decorated)
+ if (item->selected && icon_view->priv->decorated)
{
-
-
tmp = gdk_pixbuf_scale_simple (icon_view->priv->bg_icon,
item->pixbuf_width, item->pixbuf_height,
GDK_INTERP_NEAREST);
@@ -1497,8 +1569,9 @@
}
- if (event->button == 1 && event->type == GDK_2BUTTON_PRESS)
- {
+ //if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) //GTK: double ckicked launch "item-activated" event
+ if (event->button == 1 && event->type == GDK_BUTTON_PRESS) //SUNZY : tabbing will launch "item-activated" event
+ {
item = moko_icon_view_get_item_at_pos (icon_view,
event->x, event->y);
@@ -1530,7 +1603,9 @@
#ifdef DND_WORKS
if (icon_view->priv->pressed_button == event->button)
- icon_view->priv->pressed_button = -1;
+ {
+ icon_view->priv->pressed_button = -1;
+ }
#endif
moko_icon_view_stop_rubberbanding (icon_view);
@@ -2197,7 +2272,7 @@
row++;
}
while (icons != NULL);
-g_debug ("total_item = %d", icon_view->priv->total_items);
+
if (maximum_width != icon_view->priv->width)
{
icon_view->priv->width = maximum_width;
@@ -2923,7 +2998,6 @@
gint count)
{
GdkModifierType state;
-
g_return_val_if_fail (MOKO_ICON_VIEW (icon_view), FALSE);
g_return_val_if_fail (step == GTK_MOVEMENT_LOGICAL_POSITIONS ||
step == GTK_MOVEMENT_VISUAL_POSITIONS ||
@@ -2931,8 +3005,8 @@
step == GTK_MOVEMENT_PAGES ||
step == GTK_MOVEMENT_BUFFER_ENDS, FALSE);
- if (!GTK_WIDGET_HAS_FOCUS (GTK_WIDGET (icon_view)))
- return FALSE;
+ //if (!GTK_WIDGET_HAS_FOCUS (GTK_WIDGET (icon_view)))
+ //return FALSE;
gtk_widget_grab_focus (GTK_WIDGET (icon_view));
@@ -2944,7 +3018,6 @@
icon_view->priv->shift_pressed = TRUE;
}
/* else we assume not pressed */
-
switch (step)
{
case GTK_MOVEMENT_LOGICAL_POSITIONS:
@@ -2963,7 +3036,6 @@
default:
g_assert_not_reached ();
}
-
icon_view->priv->ctrl_pressed = FALSE;
icon_view->priv->shift_pressed = FALSE;
@@ -3103,8 +3175,8 @@
MokoIconViewItem *item;
gboolean dirty = FALSE;
- if (!GTK_WIDGET_HAS_FOCUS (icon_view))
- return;
+ // if (!GTK_WIDGET_HAS_FOCUS (icon_view))
+ //return;
if (!icon_view->priv->cursor_item)
{
Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/support.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/support.c 2006-12-26 09:16:41 UTC (rev 472)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/support.c 2006-12-26 10:16:18 UTC (rev 473)
@@ -30,8 +30,10 @@
*@return Bool
*/
gboolean
-moko_fill_model(GtkListStore *store, const char* icon_path, const char* icon_name) {
- if (!icon_path || !icon_name)
+moko_fill_model(GtkListStore *store, const char* icon_path,
+ const char* icon_name, MokoDesktopItem *item)
+{
+ if (!icon_path && !icon_name)
return FALSE;
GtkTreeIter iter;
@@ -39,43 +41,11 @@
gtk_list_store_append (store, &iter);
pixbuf = gdk_pixbuf_new_from_file_at_size (icon_path, PIXBUF_WIDTH, PIXBUF_HEIGHT, NULL);// ADD Gerro handle later
- //pixbuf = gdk_pixbuf_new_from_file (icon_path, NULL);// ADD Gerro handle later
- gtk_list_store_set (store, &iter, PIXBUF_COLUMN, pixbuf, TEXT_COLUMN, icon_name, -1);
+ gtk_list_store_set (store, &iter, PIXBUF_COLUMN, pixbuf, TEXT_COLUMN, icon_name, OBJECT_COLUMN, item, -1);
g_object_unref (pixbuf);
-
return TRUE;
}
-/*test code, delete later*/
-void
-moko_sample_model_fill(GtkListStore *store) {
- moko_fill_model(store, "/usr/share/pixmaps/abiword.png", "1234567890123456789");
- moko_fill_model(store, "/usr/share/pixmaps/anjuta.xpm", "anjuta");
- moko_fill_model(store, "/usr/share/pixmaps/anjuta.xpm", "anjuta");
- moko_fill_model(store, "/usr/share/pixmaps/battstat.png", "battstat");
- moko_fill_model(store, "/usr/share/pixmaps/gdm.png", "gdm");
- moko_fill_model(store, "/usr/share/pixmaps/gdm-setup.png", "gdm-setup");
- moko_fill_model(store, "/usr/share/pixmaps/gnome-eyes.png", "gnome-eyes");
- moko_fill_model(store, "/usr/share/pixmaps/gnome-geg12.png", "gnome-geg12");
- moko_fill_model(store, "/usr/share/pixmaps/gdm.xpm", "gdm");
- moko_fill_model(store, "/usr/share/pixmaps/gnome-eyes.png", "gnome-eyes");
- moko_fill_model(store, "/usr/share/pixmaps/gnome-geg12.png", "gnome-geg12");
- moko_fill_model(store, "/usr/share/pixmaps/gdm.xpm", "gdm");
- moko_fill_model(store, "/usr/share/pixmaps/abiword.png", "1234567890123456789");
- moko_fill_model(store, "/usr/share/pixmaps/anjuta.xpm", "anjuta");
- moko_fill_model(store, "/usr/share/pixmaps/anjuta.xpm", "anjuta");
- moko_fill_model(store, "/usr/share/pixmaps/battstat.png", "battstat");
- moko_fill_model(store, "/usr/share/pixmaps/gdm.png", "gdm");
- moko_fill_model(store, "/usr/share/pixmaps/gdm-setup.png", "gdm-setup");
- moko_fill_model(store, "/usr/share/pixmaps/gnome-eyes.png", "gnome-eyes");
- moko_fill_model(store, "/usr/share/pixmaps/gnome-geg12.png", "gnome-geg12");
- moko_fill_model(store, "/usr/share/pixmaps/gdm.xpm", "gdm");
- moko_fill_model(store, "/usr/share/pixmaps/gnome-eyes.png", "gnome-eyes");
- moko_fill_model(store, "/usr/share/pixmaps/gnome-geg12.png", "gnome-geg12");
- moko_fill_model(store, "/usr/share/pixmaps/gdm.xpm", "gdm");
-}
-
-/*test code, delete later*/
void
moko_sample_hisory_app_fill(MokoPixmapButton *btn)
{
More information about the commitlog
mailing list