r475 - in trunk/src/target/OM-2007/applications/openmoko-mainmenu: data src

tongsong_li at gta01.hmw-consulting.de tongsong_li at gta01.hmw-consulting.de
Fri Dec 29 04:58:40 CET 2006


Author: tongsong_li
Date: 2006-12-29 04:53:34 +0100 (Fri, 29 Dec 2006)
New Revision: 475

Added:
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/data/Back_128x128.png
Removed:
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/menu-list.c
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/menu-list.h
Modified:
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/data/Makefile.am
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/Makefile.am
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.c
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.h
   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/close-page.c
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/close-page.h
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.c
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.h
   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.c
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop_item.c
   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/mokoiconview.h
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/support.c
   trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/support.h
Log:
update: MokoIconView items scrolled up or down function. sunzhiyong <sunzhiyong at fic-sh.com.cn>

Added: trunk/src/target/OM-2007/applications/openmoko-mainmenu/data/Back_128x128.png
===================================================================
(Binary files differ)


Property changes on: trunk/src/target/OM-2007/applications/openmoko-mainmenu/data/Back_128x128.png
___________________________________________________________________
Name: svn:mime-type
   + application/octet-stream

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/data/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/data/Makefile.am	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/data/Makefile.am	2006-12-29 03:53:34 UTC (rev 475)
@@ -1,7 +1,11 @@
 EXTRA_DIST = main_menu_sel_icon.png\
-		main_menu_sel_text.png
+		main_menu_sel_text.png\
+		default-app-icon.xpm\
+		Back_128x128.png
 
 resourcedir = $(pkgdatadir)
 resource_DATA = main_menu_sel_icon.png\
-		main_menu_sel_text.png
+		main_menu_sel_text.png\
+		default-app-icon.xpm\
+		Back_128x128.png
 

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/Makefile.am
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/Makefile.am	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/Makefile.am	2006-12-29 03:53:34 UTC (rev 475)
@@ -7,7 +7,7 @@
 openmoko_mainmenu_SOURCES = main.c \
 			   mainmenu.c close-page.c mokoiconview.c\
 			   mokodesktop.c mokodesktop_item.c\
-			   callbacks.c support.c app-history.c
+			   callbacks.c app-history.c
 
 
 openmoko_mainmenu_LDADD = @OPENMOKO_LIBS@

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.c	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.c	2006-12-29 03:53:34 UTC (rev 475)
@@ -1,6 +1,17 @@
 #include "app-history.h"
 
 void
+moko_sample_hisory_app_fill(MokoPixmapButton *btn)
+{
+   GtkWidget *image;
+
+   image = gtk_image_new_from_file ("/usr/share/pixmaps/gnome-eyes.png");
+
+   moko_pixmap_button_set_finger_toolbox_btn_center_image(btn, image);
+   
+}
+
+void
 moko_add_history_app_image (MokoPixmapButton* btn, GdkPixbuf *pixbuf)
 {
   moko_pixmap_button_set_finger_toolbox_btn_center_image(btn, gtk_image_new_from_pixbuf (pixbuf)); 

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.h	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/app-history.h	2006-12-29 03:53:34 UTC (rev 475)
@@ -9,6 +9,9 @@
 moko_update_history_app_list ();
 
 void
+moko_sample_hisory_app_fill(MokoPixmapButton *btn);
+
+void
 moko_add_history_app_image (MokoPixmapButton* btn, GdkPixbuf *pixbuf);
 
 #endif "app-history.h"

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-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.c	2006-12-29 03:53:34 UTC (rev 475)
@@ -24,23 +24,22 @@
 #include <libmokoui/moko-pixmap-button.h>
 
 #include "mainmenu.h"
-#include "menu-list.h"
 #include "close-page.h"
 #include "callbacks.h"
-#include "mokoiconview.h" 
+#include "mokoiconview.h"
+#include "mokodesktop_item.h"
 
+
 gboolean close_page_hide = TRUE;
  
 void
 moko_wheel_bottom_press_cb (GtkWidget *self, MokoMainmenuApp *mma)
 {
-  if (mma->mm->current != mma->mm->top_item)
+  if (mma->mm->current->type != ITEM_TYPE_ROOT)
   {
-   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);
+    moko_main_menu_update_content (mma->mm, mma->mm->current);
+    gtk_window_present (mma->window);
   }
   else if (close_page_hide) {
     gtk_widget_hide (mma->close);
@@ -58,8 +57,8 @@
 {
  
   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);
+  //gtk_window_present (mma->window);
+  //gtk_widget_grab_focus (mma->mm->icon_view);
 
 }
 
@@ -87,9 +86,8 @@
   if (mma->window)
     moko_window_clear (mma->window);
 
-  g_free (mma);
-
   gtk_main_quit();
+  g_free (mma);
 }
 
 void 
@@ -121,81 +119,36 @@
     select_item = mokodesktop_item_get_next_sibling (select_item);
   }
 
-  g_debug ("select_item name %s", select_item->name);
+  g_debug ("select_item name %s TYPE is %d", select_item->name, select_item->type);
 
   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);
+    moko_main_menu_update_content (mma->mm, select_item);
   }
-  //else if (select_item->type == )
-  
+  else if (select_item->type == ITEM_TYPE_DOTDESKTOP_ITEM ||select_item->type == ITEM_TYPE_APP)
+  {
+   switch (fork())
+    {
+    case 0:
+      mb_exec((char *)select_item->data);
+      fprintf(stderr, "exec failed, cleaning up child\n");
+      exit(1);
+    case -1:
+      fprintf(stderr, "can't fork\n");
+      break;
+    }
+  }
 
+moko_icon_view_selection_changed_cb(mma->mm->icon_view, mma);  
+
 }
 
 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);
+    moko_main_menu_update_item_total_label (mma->mm);
 }
 
-/*test*/ 
-
-void
-moko_item_select_cb(GtkIconView *icon_view, GtkTreePath *path, MokoMainmenuApp *mma) {
-    g_debug ("call moko_item_select_cb");
-    }
-
-gboolean 
-moko_icon_view_activate_cursor_item_cb(GtkIconView *iconview, MokoMainmenuApp *mma) {
-    g_debug ("call moko_active_cursor_item_cb--------------");
-    }
-
-                                            
-//"move-cursor"
-gboolean
-moko_move_cursor_cb(GtkIconView *iconview, 
-			GtkMovementStep arg1, gint arg2, MokoMainmenuApp *mma) {
-  g_debug ("call moko_move_cursor_cb");
-}
-//"select-all"
-void
-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, MokoMainmenuApp *mma) {
-    g_debug ("call moko_select_cursor_item_cb---------------------");
-    }
-
-//"set-scroll-adjustments"
-void
-moko_set_scroll_adjustments_cb(GtkIconView *iconview, 
-					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, MokoMainmenuApp *mma) {
-    g_debug ("call moko_toggle_cursor_cb");
-    }
-//"unselect-all"
-void
-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-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/callbacks.h	2006-12-29 03:53:34 UTC (rev 475)
@@ -40,48 +40,15 @@
 void 
 moko_down_btn_cb (GtkButton *button, MokoMainMenu *mm);
 
-
 void
 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, MokoMainmenuApp *mma);
-
-//"move-cursor"
-gboolean
-moko_move_cursor_cb(GtkIconView *iconview, GtkMovementStep arg1, gint arg2, MokoMainmenuApp *mma);
-
-//"select-all"
 void
-moko_select_all_cb(GtkIconView *iconview, MokoMainmenuApp *mma);
+moko_icon_view_selection_changed_cb(GtkIconView *iconview, 
+												MokoMainmenuApp *mma);
 
-//"select-cursor-item"
-void
-moko_select_cursor_item_cb(GtkIconView *iconview, MokoMainmenuApp *mma);
-
-//"selection-changed"
-void
-moko_icon_view_selection_changed_cb(GtkIconView *iconview, MokoMainmenuApp *mma);
-
-//"set-scroll-adjustments"
-void
-moko_set_scroll_adjustments_cb(GtkIconView *iconview, GtkAdjustment *arg1, GtkAdjustment *arg2, MokoMainmenuApp *mma);
-
-//"toggle-cursor-item"
-void
-moko_toggle_cursor_item_cb(GtkIconView *iconview, MokoMainmenuApp *mma);
-
-//"unselect-all"
-void
-moko_unselect_all_cb(GtkIconView *iconview, MokoMainmenuApp *mma);
-
- 
- #endif /*callbacks.h*/
-
-
+#endif /*callbacks.h*/

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/close-page.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/close-page.c	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/close-page.c	2006-12-29 03:53:34 UTC (rev 475)
@@ -21,15 +21,7 @@
 
 #include "close-page.h"
 
- enum {
-   close_page_signal,
-   last_signal
- };
-
 static void 
-moko_close_page_class_init(MokoClosePageClass *self);
-
-static void 
 moko_close_page_init(MokoClosePage *self);
 
 /**
@@ -49,7 +41,7 @@
             sizeof (MokoClosePageClass),
             NULL, /* base_init */
             NULL, /* base_finalize */
-            (GClassInitFunc) moko_close_page_class_init,
+            NULL, /* class_init */
             NULL, /* class_finalize */
             NULL, /* class_data */
             sizeof (MokoClosePage),
@@ -65,33 +57,36 @@
 }
 
 static void 
-moko_close_page_class_init(MokoClosePageClass *self) {
-
-}
-
-static void 
 moko_close_page_init(MokoClosePage *self){
+  GtkHBox *hbox0 = gtk_hbox_new (FALSE, 0);
   GtkHBox *hbox1 = gtk_hbox_new (FALSE, 0);
   GtkHBox *hbox2 = gtk_hbox_new (FALSE, 0);
+  GtkHBox *hbox3 = gtk_hbox_new (FALSE, 0);
+  GtkWidget *image = gtk_image_new_from_file (PKGDATADIR"/Back_128x128.png");
   
-  self->close_btn = gtk_button_new ();
-  gtk_widget_set_name( GTK_WIDGET(self->close_btn), "mokofingerbutton-black" );
+  self ->close_btn = moko_pixmap_button_new();
+  gtk_widget_set_name( GTK_WIDGET(self->close_btn), "mokofingerbutton-big" );
+  moko_pixmap_button_set_center_image (self->close_btn, image);
   gtk_widget_show (self->close_btn);
 
-  self->info = gtk_label_new ("Close main menu and turn to the last application");
+  self->info[0] = gtk_label_new ("Click to close the main menu,");
   gtk_widget_show (self->info);
   gtk_label_set_justify (self->info, GTK_JUSTIFY_CENTER);
   gtk_label_set_line_wrap (self->info, TRUE);
-  
-  gtk_misc_set_alignment (GTK_MISC (self->close_btn), 0.5, 1);
-  gtk_misc_set_alignment (GTK_MISC (self->info), 0.5, 0);
-  
-  gtk_box_pack_start (GTK_BOX (self), GTK_WIDGET (hbox1), TRUE, TRUE, 150);
-  gtk_box_pack_start (GTK_BOX (hbox1), GTK_WIDGET (self->close_btn), TRUE, TRUE, 150);
-  gtk_box_pack_start (GTK_BOX (self), GTK_WIDGET (hbox2), TRUE, TRUE, 0);
-  gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (self->info), TRUE, FALSE, 100);
 
+  self->info[1] = gtk_label_new ("and turn to the previous application");
+  gtk_widget_show (self->info);
+  gtk_label_set_justify (self->info, GTK_JUSTIFY_CENTER);
+  gtk_label_set_line_wrap (self->info, TRUE);
 
+  gtk_box_pack_start (GTK_BOX (self), GTK_WIDGET (hbox0), FALSE, FALSE, 54);
+  gtk_box_pack_start (GTK_BOX (self), GTK_WIDGET (hbox1), FALSE, FALSE, 34);
+  gtk_box_pack_start (GTK_BOX (hbox1), GTK_WIDGET (self->close_btn), TRUE, TRUE, 140);
+  gtk_box_pack_start (GTK_BOX (self), GTK_WIDGET (hbox2), FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (hbox2), GTK_WIDGET (self->info[0]), TRUE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (self), GTK_WIDGET (hbox3), FALSE, FALSE, 0);
+  gtk_box_pack_start (GTK_BOX (hbox3), GTK_WIDGET (self->info[1]), TRUE, FALSE, 0);
+
 }
 
 GtkWidget *

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/close-page.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/close-page.h	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/close-page.h	2006-12-29 03:53:34 UTC (rev 475)
@@ -22,7 +22,9 @@
 #include <gtk/gtkbutton.h>
 #include <gtk/gtklabel.h>
 #include <gtk/gtkvbox.h>
+#include <libmokoui/moko-pixmap-button.h>
 
+
 #define MOKO_CLOSE_PAGE_TYPE				(moko_close_page_get_type())
 #define MOKO_CLOSE_PAGE(obj)				(G_TYPE_CHECK_INSTANCE_CAST ((obj), MOKO_CLOSE_PAGE_TYPE, MokoClosePage))
 #define MOKO_CLOSE_PAGE_CLASS(klass)		(G_TYPE_CHECK_CLASS_CAST ((klass), MOKO_CLOSE_PAGE_TYPE, MokoClosePageClass))
@@ -35,8 +37,9 @@
 struct _MokoClosePage {
 	GtkVBox vbox;
 
-	GtkButton *close_btn;
-	GtkLabel *info;
+	//GtkButton *close_btn;
+	MokoPixmapButton *close_btn;
+	GtkLabel *info[2];
 };
 
 struct _MokoClosePageClass {

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-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.c	2006-12-29 03:53:34 UTC (rev 475)
@@ -19,8 +19,6 @@
 
 #include "callbacks.h"
 
-
-
 #include "main.h"
 
 int 
@@ -37,58 +35,63 @@
 
     gtk_init( &argc, &argv );
     
-   /* application object */
+    /* application object */
     mma->app = MOKO_APPLICATION(moko_application_get_instance());
     g_set_application_name( "OpenMoko Main Menu" );
     
-    /* main window */
+    /* finger based window */
     mma->window = MOKO_FINGER_WINDOW(moko_finger_window_new());
     gtk_widget_show (GTK_WIDGET (mma->window));
+
+    /* finger wheel object*/
     mma->wheel = moko_finger_window_get_wheel (mma->window);
-    //GTK_WIDGET_UNSET_FLAGS (GTK_WIDGET (mma->wheel), GTK_CAN_FOCUS);
+
+    /* finger toolbox object*/
     mma->toolbox = moko_finger_window_get_toolbox(mma->window);
-
+    //initialize toolbox's buttons, which are MokoPixmapButton objects.
     for (i=0; i<4; i++)
     	{
     	    mma->history[i] =  moko_finger_tool_box_add_button_without_label (mma->toolbox);
            gtk_widget_show (mma->history[i]);
     	}
-   
+
+    /* MokoMainMenu object */
     mma->mm = moko_main_menu_new();
-    gtk_widget_show (mma->mm);
 
+    /* MokoClosePage object */
     mma->close = moko_close_page_new ();
-    gtk_widget_show (mma->close);
-    //gtk_icon_view_selected_foreach (mm->icon_view, moko_item_select_cb, NULL);
-   // g_signal_connect (mm->icon_view, "toggle-cursor-item", 
-		//G_CALLBACK (moko_toggle_cursor_item_cb), NULL);
+
+    /* signal connected*/
+    //finger wheel object signals
     g_signal_connect (mma->wheel, "press_bottom",
-    			G_CALLBACK ( moko_wheel_bottom_press_cb), mma);
+    		G_CALLBACK ( moko_wheel_bottom_press_cb), mma);
     g_signal_connect (mma->wheel, "press_left_up",
-    			G_CALLBACK ( moko_wheel_left_up_press_cb), mma);
+    		G_CALLBACK ( moko_wheel_left_up_press_cb), mma);
     g_signal_connect (mma->wheel, "press_right_down",
-    			G_CALLBACK ( moko_wheel_right_down_press_cb), mma);
+    		G_CALLBACK ( moko_wheel_right_down_press_cb), mma);
+    //MokoClosePage object signals
     g_signal_connect (mma->close->close_btn, "released",
-    			G_CALLBACK (moko_close_page_close_btn_released_cb), mma);
-   // g_signal_connect (mma->mm->icon_view, "move-cursor", 
-    //			G_CALLBACK (moko_move_cursor_cb), mma);
+    		G_CALLBACK (moko_close_page_close_btn_released_cb), mma);
+    //MokoMainMenu:MokoIconView object signals
     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_CALLBACK (moko_icon_view_selection_changed_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));
+    		G_CALLBACK (moko_icon_view_item_acitvated_cb), mma);
+
+    /* put MokoMainMenu object and MokoClosePange object into the finger based window */
+    moko_finger_window_set_contents (mma->window, GTK_WIDGET(mma->mm));
+    moko_finger_window_set_contents (mma->window, GTK_WIDGET(mma->close));
     
     /* show everything and run main loop */
-    gtk_widget_show_all( GTK_WIDGET(mma->window) );
+    gtk_widget_show_all (GTK_WIDGET(mma->window) );
 
-    gtk_widget_show (GTK_WIDGET (mma->wheel));
+    /*show wheel toolbox MokoMainMenu objects first, and hide the MokoClosePage object*/
+    gtk_widget_show (GTK_WIDGET (mma->wheel));	
     gtk_widget_show (GTK_WIDGET (mma->toolbox));
+    gtk_widget_show (GTK_WIDGET (mma->mm));
     gtk_widget_hide (GTK_WIDGET (mma->close));
 
+    /*test code, delete later*/
     moko_sample_hisory_app_fill (mma->history[0]);
 
     gtk_main();

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.h	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/main.h	2006-12-29 03:53:34 UTC (rev 475)
@@ -27,7 +27,6 @@
 #include <libmokoui/moko-pixmap-button.h>
 
 #include "mainmenu.h"
-#include "menu-list.h"
 #include "close-page.h"
 
 typedef struct _MokoMainmenuApp MokoMainmenuApp;
@@ -39,9 +38,8 @@
     MokoFingerWheel *wheel;
     MokoFingerToolBox *toolbox;
     MokoMainMenu *mm;
-    MokoMenuList *list;
     MokoClosePage *close;
-    MokoPixmapButton *history[4]
+    MokoPixmapButton *history[4];
 };
 
 #endif /*main.h*/

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-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.c	2006-12-29 03:53:34 UTC (rev 475)
@@ -16,14 +16,13 @@
  *
  *  Current Version: $Rev$ ($Date$) [$Author$]
  */
-
-#include "mainmenu.h"
 #include "mokodesktop.h"
 #include "mokodesktop_item.h"
-#include "callbacks.h"
 
+#include "mainmenu.h"
+
 enum {
-    MENU_SIGNAL,
+    MENU_SIGNAL = 0,
     LAST_SIGNAL
 };
 
@@ -52,7 +51,7 @@
             sizeof (MokoMainMenuClass),
             NULL, /* base_init */
             NULL, /* base_finalize */
-            (GClassInitFunc) moko_main_menu_class_init,
+            NULL, /* class_init *///(GClassInitFunc) moko_main_menu_class_init,
             NULL, /* class_finalize */
             NULL, /* class_data */
             sizeof (MokoMainMenu),
@@ -60,7 +59,6 @@
             (GInstanceInitFunc) moko_main_menu_init,
             NULL
         };
-
         menu_type = g_type_register_static (GTK_TYPE_VBOX, "MokoMainMenu", &menu_info, 0);
     }
 
@@ -69,21 +67,13 @@
 
 /**
 *@brief initialize	MokoMainMenu class.
-*@param klass	MokoMainMenu Class
+*@param klass	MokoMainMenu class
 *@return none
 */
 static void 
-moko_main_menu_class_init(MokoMainMenuClass* Klass) /* Class Initialization */
+moko_main_menu_class_init(MokoMainMenuClass* Klass) 
 {
-    menu_signals[MENU_SIGNAL] = g_signal_new ("MokoMainMenu",
-            G_TYPE_FROM_CLASS (Klass),
-            G_SIGNAL_RUN_FIRST | G_SIGNAL_ACTION,
-            G_STRUCT_OFFSET (MokoMainMenuClass, moko_main_menu_function),
-            NULL,
-            NULL,
-            g_cclosure_marshal_VOID__VOID,
-            G_TYPE_NONE, 
-            0);
+
 }
 
 
@@ -96,13 +86,9 @@
 {
     PangoFontDescription* PangoFont = pango_font_description_new(); //get system default PangoFontDesc
     GtkEventBox *eventbox;
-    GtkButton *btn[2];// Use to test, delete later.
     int ret = 0 ;
 
-    btn[0] = gtk_button_new_with_label ("up");
-    btn[1] = gtk_button_new_with_label ("down");
-
-    	/* Buid Root item, don't display */
+    /* Buid Root item, don't display */
     mm->top_item  = mokodesktop_item_new_with_params ("Home", 
 						       NULL,
 						       NULL,
@@ -110,9 +96,10 @@
 
     /* Build Lists (parse .directory and .desktop files) */	
     ret = mokodesktop_init(mm->top_item, ITEM_TYPE_CNT);
+    //make current item point to the top_item.
+    mm->current = mm->top_item;
 
-    mm->current = mm->top_item;
-    
+    /*center label of MokoMainMenu head*/
     mm->section_name =  gtk_label_new ("Main Menu");
     gtk_widget_show (mm->section_name);
     gtk_widget_set_name (GTK_WIDGET (mm->section_name), "Section Name");
@@ -120,7 +107,6 @@
     gtk_misc_set_alignment (GTK_MISC (mm->section_name), SECTION_ALG_X, SECTION_ALG_Y);
     gtk_misc_set_padding (GTK_MISC (mm->section_name), SECTION_X_PADDING, SECTION_Y_PADDING);
     gtk_label_set_ellipsize (mm->section_name, PANGO_ELLIPSIZE_END);
-    
    /* if (PangoFont) {
     	  pango_font_description_set_size (PangoFont, FONT_SIZE_SECTION);
 	  gtk_widget_modify_font (GTK_WIDGET (mm->section_name), PangoFont);
@@ -130,12 +116,9 @@
     	  }
 */
 
-    eventbox = gtk_event_box_new ();
-    gtk_event_box_set_visible_window (eventbox, TRUE);
-    gtk_widget_show (eventbox);
-    gtk_widget_set_name (eventbox, "gtkeventbox-black");
-    
-    mm->item_total = gtk_label_new ("0/0");
+
+    /*right side label of MokoMainMenu head*/
+    mm->item_total = gtk_label_new ("");
     //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);
@@ -148,6 +131,13 @@
     	  g_debug("FAILED to load FONT ");
     	  }
 
+    //Only used to change background
+    eventbox = gtk_event_box_new ();
+    gtk_event_box_set_visible_window (eventbox, TRUE);
+    gtk_widget_show (eventbox);
+    gtk_widget_set_name (eventbox, "gtkeventbox-black");
+
+    /*MokoIconView object initialize*/
     mm->icon_view = moko_icon_view_new();
     moko_icon_view_set_item_width(mm->icon_view, ITEM_WIDTH);
     moko_icon_view_set_columns (mm->icon_view, COLUMN_NUM);
@@ -162,7 +152,6 @@
     gtk_widget_show (mm->icon_view);
 
     mm->list_store = gtk_list_store_new (3, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_POINTER);
-
     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));
@@ -178,35 +167,73 @@
     
     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, 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);
+    moko_main_menu_update_content (mm, mm->current);
 
-    //moko_sample_model_fill(mm->list_store);
-    gtk_widget_show (mm);
-    
-    moko_main_menu_update (mm, mm->current);
-
     if (PangoFont)
     	  pango_font_description_free (PangoFont);
 }
 
+static void
+moko_set_label_content(GtkLabel *label, const char *content)
+{
+    if (label)
+    	  gtk_label_set_text (label, content);
+}
 
-/* Construction */
+/**
+*@brief fill model
+*@param store		GtkListSrore*
+*@param icon_path	const char*
+*@param icon_name	const char*
+*@return Bool
+*/
+static gboolean
+moko_fill_model(GtkListStore *store, const char* icon_path, 
+						const char* icon_name, MokoDesktopItem *item)
+{
+    if (!icon_path && !icon_name)
+        return FALSE;
+
+    GtkTreeIter iter;
+    GdkPixbuf *pixbuf;
+
+    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
+    gtk_list_store_set (store, &iter, PIXBUF_COLUMN, pixbuf, TEXT_COLUMN, icon_name, OBJECT_COLUMN, item, -1);
+    g_object_unref (pixbuf);
+    return TRUE;
+}
+
+/*public functions*/
+
+/**
+ * moko_main_menu_new:
+ * 
+ * Creates a new #MokoMainMenu widget
+ * 
+ * Return value: A newly created #MokoMainMenu widget
+ *
+ **/
 GtkWidget* 
-moko_main_menu_new() 
+moko_main_menu_new () 
 {
     return GTK_WIDGET(g_object_new(moko_main_menu_get_type(), NULL));
 }
 
-/* Destruction */
+/**
+ * moko_main_menu_clear:
+ * @mm #MokoMainMenu instance.
+ * 
+ * clear a #MokoMainMenu widget.
+ * 
+ **/
 void 
-moko_main_menu_clear(MokoMainMenu *mm) { 
+moko_main_menu_clear(MokoMainMenu *mm) 
+{ 
     if (mm->top_item)
     	{
     	  /* Free Lists (free .directory and .desktop files) */
@@ -215,58 +242,106 @@
 	  mokodesktop_item_free(mm->top_item);
     	}
     if (mm) g_free (mm);
-    
 }
 
-/*
-*
-*
-*/
+/**
+ * moko_main_menu_update_content:
+ * @mm #MokoMainMenu.
+ * @item #MokoDesktopItem list.
+ * 
+ * Reinstall a #MokoMainMenu widget content.
+ *
+ * Return value: %TRUE if @update successful is selected.
+ * 
+ **/
 gboolean
-moko_main_menu_update(MokoMainMenu *mm, MokoDesktopItem *item)
+moko_main_menu_update_content (MokoMainMenu *mm, MokoDesktopItem *item)
 {
   MokoDesktopItem *item_new;
-  g_debug("mokodesktop: item [%d][%s][%s]\n", item->type, item->name, item->icon_name);
+  gint count = 0;
+  char total_item[6];
+  //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");
+  //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
-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");
+     count +=1;
+     
+     if (access (item_new->icon_name, 0) == 0)
+     {
+      	moko_fill_model(mm->list_store, item_new->icon_name, item_new->name, item_new);
+     }
+     else 
+     {
+       char path[512];
+       snprintf (path, 512, "%s/%s", PIXMAP_PATH, item_new->icon_name);
 
-      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 ("test");
+       if (access (path, 0) == 0)
+          moko_fill_model(mm->list_store, path, item_new->name, item_new);
+       else
+         {
+	     snprintf (path, 512, "%s/%s", PKGDATADIR, "default-app-icon.xpm");
+      	     moko_fill_model(mm->list_store, path, item_new->name, item_new);
+         }
+      }
+    }
 
+  snprintf (total_item, 6, "0/%d", count);
+  moko_set_label_content(mm->item_total, total_item);
+
   return TRUE;
 }
 
+/**
+ * moko_main_menu_update_item_total_label:
+ * @mm A #MokoMainMenu.
+ *
+ * Update right side label infomation.
+ *
+ **/
+void
+moko_main_menu_update_item_total_label (MokoMainMenu *mm)
+{  
+  gint total = 0, cursor = 0;
+  char item_total[6];
 
+  total = moko_icon_view_get_total_items (mm->icon_view);
+  cursor = moko_icon_view_get_cursor_positon (mm->icon_view);
+
+  if (cursor <0)
+  	return;
+
+  snprintf (item_total, 6, "%d/%d", cursor, total);
+  moko_set_label_content (mm->item_total, item_total);
+}
+
+/**
+ * moko_main_menu_set_setction_name_label:
+ * @mm A #MokoMainMenu.
+ * @str const char*
+ *
+ * Set Center label content of #MokoMainMenu head.
+ *
+ **/
+void
+moko_main_menu_set_section_name_label (MokoMainMenu *mm, const char *str)
+{
+    moko_set_label_content (mm->section_name, str);
+}

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-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mainmenu.h	2006-12-29 03:53:34 UTC (rev 475)
@@ -38,7 +38,7 @@
     };
 
 G_BEGIN_DECLS
-/*widgets property(s)*/
+/* property(s)*/
 #define COLUMN_NUM 		3
 #define ITEM_WIDTH 			140
 #define ITEM_MARGIN 		10
@@ -81,7 +81,7 @@
     GtkHBox *hbox;
     GtkLabel *section_name;
     GtkLabel *item_total;
-    };
+};
 
 struct _MokoMainMenuClass {
     GtkVBoxClass parent_class;
@@ -95,9 +95,18 @@
 GtkWidget*
 moko_main_menu_new ();
 
+void 
+moko_main_menu_clear (MokoMainMenu *mm);
+
 gboolean
-moko_main_menu_update(MokoMainMenu *mm, MokoDesktopItem *item);
+moko_main_menu_update_content (MokoMainMenu *mm, MokoDesktopItem *item);
 
+void
+moko_main_menu_update_item_total_label (MokoMainMenu *mm);
+
+void
+moko_main_menu_update_section_name_label (MokoIconView *mm);
+
 G_END_DECLS
 
 #endif /*main_menu.h*/

Deleted: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/menu-list.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/menu-list.c	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/menu-list.c	2006-12-29 03:53:34 UTC (rev 475)
@@ -1,20 +0,0 @@
-/*
- *  openmoko-mainmenu
- *
- *  Authored by Sun Zhiyong <sunzhiyong at fic-sh.com.cn>
- *
- *  Copyright (C) 2006 First International Computer Inc.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU Public License as published by
- *  the Free Software Foundation; version 2.1 of the license.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU Public License for more details.
- *
- *  Current Version: $Rev$ ($Date$) [$Author$]
- */
-
- #include "menu-list.h"

Deleted: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/menu-list.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/menu-list.h	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/menu-list.h	2006-12-29 03:53:34 UTC (rev 475)
@@ -1,29 +0,0 @@
-/*
- *  openmoko-mainmenu
- *
- *  Authored by Sun Zhiyong <sunzhiyong at fic-sh.com.cn>
- *
- *  Copyright (C) 2006 First International Computer Inc.
- *
- *  This program is free software; you can redistribute it and/or modify
- *  it under the terms of the GNU Public License as published by
- *  the Free Software Foundation; version 2.1 of the license.
- *
- *  This program is distributed in the hope that it will be useful,
- *  but WITHOUT ANY WARRANTY; without even the implied warranty of
- *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- *  GNU Public License for more details.
- *
- *  Current Version: $Rev$ ($Date$) [$Author$]
- */
-#ifndef _MOKO_MENU_LIST_H
-#define _MOKO_MENU_LIST_H
-
- typedef struct _MokoMenuList MokoMenuList;
-
- struct _MokoMenuList {
-
- 	
- 	};
-
- #endif /*menu-list.h*/

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop.c	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop.c	2006-12-29 03:53:34 UTC (rev 475)
@@ -104,7 +104,7 @@
 
   mokodesktop_item_set_activate_callback (item_new, item_activate_cb); 
 
-  item_before = mokodesktop_item_get_child(found_folder_item);
+  item_before = mokodesktop_item_get_child (found_folder_item);
 
 
   if(!item_before)

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop_item.c
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop_item.c	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop_item.c	2006-12-29 03:53:34 UTC (rev 475)
@@ -19,10 +19,10 @@
 void
 mokodesktop_item_free(MokoDesktopItem *item)
 {
-  if (item->name)               free(item->name);
-  if (item->name_extended)      free(item->name_extended);
-  if (item->comment)            free(item->comment);
-  if (item->icon_name)          free(item->icon_name);
+  if (item->name)               	free(item->name);
+  if (item->name_extended)      	free(item->name_extended);
+  if (item->comment)            	free(item->comment);
+  if (item->icon_name)         	free(item->icon_name);
 
   free(item);
 }
@@ -179,8 +179,6 @@
   item_tmp->item_prev_sibling = item;
 
   *item_head = item;
-
-
 }
 
 MokoDesktopItem *

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-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokodesktop_item.h	2006-12-29 03:53:34 UTC (rev 475)
@@ -4,10 +4,10 @@
 #include "mokodesktop.h"
 
 
-#define mokodesktop_items_enumerate_siblings(item_head, item)  \
-     for ( (item) = (item_head);                             \
-	   (item) != NULL;                                   \
-	   (item) = (item)->item_next_sibling )              \
+#define mokodesktop_items_enumerate_siblings(item_head, item)  	\
+  					for ( (item) = (item_head);					\
+	   				(item) != NULL;                                      			\
+	   				(item) = (item)->item_next_sibling )             		
 
 /**
  * Constructs a new blank mbpixbuf image without an alpha channel.
@@ -19,7 +19,7 @@
 /**
  * Constructs a new blank mbpixbuf image without an alpha channel.
  *
- * @param mbdesktop
+ * @param mokodesktop
  * @param item
  */
 void

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-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.c	2006-12-29 03:53:34 UTC (rev 475)
@@ -520,10 +520,10 @@
 
 
   klass->set_scroll_adjustments = moko_icon_view_set_adjustments;
-  klass->select_all = moko_icon_view_real_select_all;
-  klass->unselect_all = moko_icon_view_real_unselect_all;
-  klass->select_cursor_item = moko_icon_view_real_select_cursor_item;
-  klass->toggle_cursor_item = moko_icon_view_real_toggle_cursor_item;
+  //klass->select_all = moko_icon_view_real_select_all;
+  //klass->unselect_all = moko_icon_view_real_unselect_all;
+  //klass->select_cursor_item = moko_icon_view_real_select_cursor_item;
+  //klass->toggle_cursor_item = moko_icon_view_real_toggle_cursor_item;
   klass->activate_cursor_item = moko_icon_view_real_activate_cursor_item;  
   klass->move_cursor = moko_icon_view_real_move_cursor;
 
@@ -539,7 +539,7 @@
    */
     g_object_class_install_property (gobject_class,
 				   PROP_BG_ICON,
-				   g_param_spec_object ("bg_decoraton",
+				   g_param_spec_object ("bg_icon",
                                                         P_("Decoration Background"),
                                                         P_("Background image used to decorated selected icon column."),
                                                         GDK_TYPE_PIXBUF,
@@ -581,12 +581,13 @@
    *
    */
     g_object_class_install_property (gobject_class,
-				   PROP_DECORATED,
+				  PROP_DECORATED,
 				  g_param_spec_boolean ("decorated",
                                                          P_("Decorated"),
                                                          P_("Whether decorated the icon and text with custom image when selected"),
                                                          FALSE,
                                                          G_PARAM_READWRITE));
+
 /**
    * MokoIconView::max-text-len:
    *
@@ -846,6 +847,9 @@
                                                                G_PARAM_READABLE));
 
 /*signals*/
+/*New signals for MokoIconView*/
+
+/*old signals of GtkIconView widget*/
     widget_class->set_scroll_adjustments_signal =
     g_signal_new ("set_scroll_adjustments",
 		  G_TYPE_FROM_CLASS (gobject_class),
@@ -944,6 +948,7 @@
 				  GTK_MOVEMENT_VISUAL_POSITIONS, 1);
   moko_icon_view_add_move_binding (binding_set, GDK_KP_Left, 0, 
 				  GTK_MOVEMENT_VISUAL_POSITIONS, -1);
+				  
 }
 
 /*@brief initialize 	MokoIconView instance
@@ -970,7 +975,7 @@
   icon_view->priv->layout = gtk_widget_create_pango_layout (GTK_WIDGET (icon_view), NULL);
 
   icon_view->priv->max_text_len = 30;
-  icon_view->priv->decr_width = 15;
+  icon_view->priv->decr_width = 10;
   icon_view->priv->decorated = FALSE;
   
   pango_layout_set_wrap (icon_view->priv->layout, PANGO_WRAP_WORD_CHAR);
@@ -1038,7 +1043,7 @@
 			   GDK_BUTTON_RELEASE_MASK |
 			   GDK_KEY_PRESS_MASK |
 			   GDK_KEY_RELEASE_MASK) |
-    gtk_widget_get_events (widget);
+  gtk_widget_get_events (widget);
 
   icon_view->priv->bin_window = gdk_window_new (widget->window,
 						&attributes, attributes_mask);
@@ -1402,7 +1407,7 @@
 
       g_free (rectangles);
     }
-
+  
   return TRUE;
 }
 
@@ -1569,8 +1574,7 @@
 
     }
 
-  //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
+ /* if (event->button == 1 && event->type == GDK_2BUTTON_PRESS) //GTK: double ckicked launch "item-activated" event
    {
       item = moko_icon_view_get_item_at_pos (icon_view,
 					    event->x, event->y);
@@ -1586,7 +1590,7 @@
 
       icon_view->priv->last_single_clicked = NULL;
     }
-  
+  */
   if (dirty)
     g_signal_emit (icon_view, moko_icon_view_signals[SELECTION_CHANGED], 0);
 
@@ -1601,6 +1605,24 @@
 
   icon_view = MOKO_ICON_VIEW (widget);
   
+  if (event->button == 1 && event->type == GDK_BUTTON_RELEASE)  //SUNZY : tabbing will launch "item-activated" event
+   {
+   
+      MokoIconViewItem *item = moko_icon_view_get_item_at_pos (icon_view,
+					    event->x, event->y);
+
+      if (item && item == icon_view->priv->last_single_clicked)
+	{
+	  GtkTreePath *path;
+
+	  path = gtk_tree_path_new_from_indices (item->index, -1);
+	  moko_icon_view_item_activated (icon_view, path);
+	  gtk_tree_path_free (path);
+	}
+
+      icon_view->priv->last_single_clicked = NULL;
+    }
+  
 #ifdef DND_WORKS
   if (icon_view->priv->pressed_button == event->button)
   {
@@ -2261,9 +2283,8 @@
     }
   
   icons = icon_view->priv->items;
-  y += icon_view->priv->margin;
   row = 0;
-  
+
   do
     {
       icons = moko_icon_view_layout_single_row (icon_view, icons, 
@@ -2272,17 +2293,14 @@
       row++;
     }
   while (icons != NULL);
-  
+
   if (maximum_width != icon_view->priv->width)
     {
       icon_view->priv->width = maximum_width;
     }
   y += icon_view->priv->margin;
   
-  if (y != icon_view->priv->height)
-    {
-      icon_view->priv->height = y;
-    }
+   icon_view->priv->height = y ;
 
   moko_icon_view_set_adjustment_upper (icon_view->priv->hadjustment, icon_view->priv->width);
   moko_icon_view_set_adjustment_upper (icon_view->priv->vadjustment, icon_view->priv->height);
@@ -3177,7 +3195,7 @@
   
  // if (!GTK_WIDGET_HAS_FOCUS (icon_view)) 
     //return;
-  
+
   if (!icon_view->priv->cursor_item)
     {
       GList *list;
@@ -3189,13 +3207,28 @@
 
       item = list ? list->data : NULL;
     }
-  else
-    item = find_item (icon_view, 
+  else 
+    {
+     item = find_item (icon_view, 
 		      icon_view->priv->cursor_item,
 		      count, 0);
 
+     while (!item && count >= 0) //SUNZY:Can't find next row item in the same column. 
+        { 
+           gint col = 0;
+           for (col ; col + icon_view->priv->columns >0 && !item ; col--)
+  	   	item = find_item (icon_view, 
+		      icon_view->priv->cursor_item,
+		      count, col);
+	     count --;
+	     col = icon_view->priv->columns;
+    	    g_debug ("count = %d column = %d", count, col);
+        }
+
+    }
+
   if (!item)
-    return;
+	return;
 
   if (icon_view->priv->ctrl_pressed ||
       !icon_view->priv->shift_pressed ||
@@ -3374,6 +3407,7 @@
 {
   gint y, height;
   gdouble value;
+  MokoIconViewItem *above_item = find_item (icon_view, item, -1, 0);
 
   gdk_drawable_get_size (GDK_DRAWABLE (icon_view->priv->bin_window), NULL, &height);
   gdk_window_get_position (icon_view->priv->bin_window, NULL, &y);
@@ -3383,12 +3417,12 @@
       value = icon_view->priv->vadjustment->value + y + item->y;
       gtk_adjustment_set_value (icon_view->priv->vadjustment, value);
     }
-  else if (y + item->y + item->height > GTK_WIDGET (icon_view)->allocation.height)
-    {
-      value = icon_view->priv->vadjustment->value + y + item->y + item->height 
-	- GTK_WIDGET (icon_view)->allocation.height;
+  else if (above_item && y + item->y > 0)
+    {      
+      value = icon_view->priv->vadjustment->value + y + above_item->y;
       gtk_adjustment_set_value (icon_view->priv->vadjustment, value);
     }
+ 
 }
 
 /* Public API */
@@ -4235,7 +4269,7 @@
       moko_icon_view_invalidate_sizes (icon_view);
       moko_icon_view_queue_layout (icon_view);
       
-      g_object_notify (G_OBJECT (icon_view), "icon column background");
+      g_object_notify (G_OBJECT (icon_view), "bg_icon");
     }  
 }
 
@@ -4260,7 +4294,7 @@
           
       moko_icon_view_invalidate_sizes (icon_view);
       moko_icon_view_queue_layout (icon_view);
-      g_object_notify (G_OBJECT (icon_view), "text column background");
+      g_object_notify (G_OBJECT (icon_view), "bg_text");
     }  
 }
 
@@ -4283,7 +4317,7 @@
 
       moko_icon_view_invalidate_sizes (icon_view);
       moko_icon_view_queue_layout (icon_view);
-      g_object_notify (G_OBJECT (icon_view), "decoration-width");
+      g_object_notify (G_OBJECT (icon_view), "decr_width");
     }  
 }
 
@@ -4317,15 +4351,19 @@
 moko_icon_view_set_decorated (MokoIconView *icon_view, gboolean decorated)
 {
   g_return_if_fail (MOKO_IS_ICON_VIEW (icon_view));
+
+  decorated = decorated != FALSE;
   
-  if (icon_view->priv->decorated!= decorated)
+  if (icon_view->priv->decorated != decorated)
     {
       icon_view->priv->decorated = decorated;
 
-      moko_icon_view_queue_layout (icon_view);
+        moko_icon_view_invalidate_sizes (icon_view);
+        moko_icon_view_queue_layout (icon_view);
       
       g_object_notify (G_OBJECT (icon_view), "decorated");
-    }  
+    } 
+    
 }
 
 /**
@@ -4364,7 +4402,7 @@
 
       moko_icon_view_invalidate_sizes (icon_view);
       moko_icon_view_queue_layout (icon_view);
-      g_object_notify (G_OBJECT (icon_view), "max text column width");
+      g_object_notify (G_OBJECT (icon_view), "max_text_len");
     }  
 
 }

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.h	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/mokoiconview.h	2006-12-29 03:53:34 UTC (rev 475)
@@ -39,6 +39,8 @@
 {
   GtkContainerClass parent_class;
 
+   void    (* item_list_update)      (MokoIconView      *icon_view);
+
   void    (* set_scroll_adjustments) (MokoIconView      *icon_view,
 				      GtkAdjustment    *hadjustment,
 				      GtkAdjustment    *vadjustment);

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-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/support.c	2006-12-29 03:53:34 UTC (rev 475)
@@ -22,47 +22,12 @@
 #include <libmokoui/moko-pixmap-button.h>
 
  
- /**
-*@brief fill model
-*@param store		GtkListSrore*
-*@param icon_path	const char*
-*@param icon_name	const char*
-*@return Bool
-*/
-gboolean
-moko_fill_model(GtkListStore *store, const char* icon_path, 
-						const char* icon_name, MokoDesktopItem *item)
-{
-    if (!icon_path && !icon_name)
-        return FALSE;
 
-    GtkTreeIter iter;
-    GdkPixbuf *pixbuf;
 
-    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
-    gtk_list_store_set (store, &iter, PIXBUF_COLUMN, pixbuf, TEXT_COLUMN, icon_name, OBJECT_COLUMN, item, -1);
-    g_object_unref (pixbuf);
-    return TRUE;
-}
 
-void
-moko_sample_hisory_app_fill(MokoPixmapButton *btn)
-{
-   GtkWidget *image;
 
-   image = gtk_image_new_from_file ("/usr/share/pixmaps/gnome-eyes.png");
 
-   moko_pixmap_button_set_finger_toolbox_btn_center_image(btn, image);
-   
-}
 
-void
-moko_set_label_content(GtkLabel *label, const char *content) {
-    if (label)
-    	  gtk_label_set_text (label, content);
-    }
-
 /* Use this function to set the directory containing installed pixmaps. */
 /*void
 add_pixmap_directory(const gchar *directory){

Modified: trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/support.h
===================================================================
--- trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/support.h	2006-12-28 00:56:41 UTC (rev 474)
+++ trunk/src/target/OM-2007/applications/openmoko-mainmenu/src/support.h	2006-12-29 03:53:34 UTC (rev 475)
@@ -20,12 +20,7 @@
  #ifndef _MAIN_MENU_SUPPORT_H
  #define _MAIN_MENU_SUPPORT_H
  
-#include <glib.h>
-#include <glib-object.h>
-#include <gtk/gtk.h>
-#include <gdk/gdkx.h>
- 
- #include "mainmenu.h"
+#include "mainmenu.h"
 
- #endif
+#endif
 





More information about the commitlog mailing list