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