X-Git-Url: https://git.jankratochvil.net/?p=gnokii.git;a=blobdiff_plain;f=xgnokii%2Fxgnokii_logos.c;fp=xgnokii%2Fxgnokii_logos.c;h=5f806cf25071f6342cda09015012e5c7f3d2bf5a;hp=cc221acc440f0ef028415b4593d1bd7c3d12bb34;hb=a2dfc99dc499ea8600bf5178f8122125d7d7d557;hpb=1fdb423c0a2e33c1282bec25de66d9f40d56999b diff --git a/xgnokii/xgnokii_logos.c b/xgnokii/xgnokii_logos.c index cc221ac..5f806cf 100644 --- a/xgnokii/xgnokii_logos.c +++ b/xgnokii/xgnokii_logos.c @@ -1,31 +1,16 @@ -/* - - $Id$ - - X G N O K I I - - A Linux/Unix GUI for Nokia mobile phones. - Copyright (C) 1999 Pavel Janík ml., Hugh Blemings - & Ján Derfiòák . - - Released under the terms of the GNU GPL, see file COPYING for more details. - -*/ - -#include #include #include #include #include #include #include +#include #include "misc.h" #include "gsm-common.h" #include "gsm-api.h" -#include "cfgreader.h" #include "gsm-networks.h" -#include "gsm-filetypes.h" +#include "files/gsm-filetypes.h" #include "gsm-bitmaps.h" #include "xgnokii_logos.h" @@ -44,8 +29,6 @@ #include "xpm/New.xpm" #include "xpm/Send.xpm" #include "xpm/Read.xpm" -#include "xpm/Open.xpm" -#include "xpm/Save.xpm" #include "xpm/Edit_invert.xpm" #include "xpm/Edit_flip_horizontal.xpm" @@ -57,37 +40,36 @@ #include "xpm/Tool_filled_rectangle.xpm" extern GSM_Network GSM_Networks[]; -extern GSM_Statemachine statemachine; -GtkWidget *GUI_LogosWindow; +static GtkWidget *GUI_LogosWindow; -ErrorDialog errorDialog = {NULL, NULL}; -InfoDialog infoDialog = {NULL, NULL}; +static ErrorDialog errorDialog = {NULL, NULL}; +static InfoDialog infoDialog = {NULL, NULL}; /* stuff for drawingArea */ -GtkWidget *drawingArea = NULL; -GdkPixmap *drawingPixmap = NULL; -GdkPixmap *greenPointPixmap, *blackPointPixmap; -int drawingAreaWidth, drawingAreaHeight; /* in pixels */ -int mouseButtonPushed = 0; +static GtkWidget *drawingArea = NULL; +static GdkPixmap *drawingPixmap = NULL; +static GdkPixmap *greenPointPixmap, *blackPointPixmap; +static int drawingAreaWidth, drawingAreaHeight; /* in pixels */ +static int mouseButtonPushed = 0; /* stuff for previewArea */ -GtkWidget *previewArea = NULL; -GdkPixmap *previewPixmap = NULL; -GdkPixmap *greenPixelPixmap; -int previewPixmapWidth, previewPixmapHeight; -int previewAvailable = 1, showPreviewErrorDialog = 1; -int previewPixmapNumber = 0; +static GtkWidget *previewArea = NULL; +static GdkPixmap *previewPixmap = NULL; +static GdkPixmap *greenPixelPixmap; +static int previewPixmapWidth, previewPixmapHeight; +static int previewAvailable = 1, showPreviewErrorDialog = 1; +static int previewPixmapNumber = 0; -GSM_Bitmap bitmap, oldBitmap; -GSM_NetworkInfo networkInfo; +static GSM_Bitmap bitmap, oldBitmap; +static GSM_NetworkInfo networkInfo; /* widgets for toolbar - some, need global variables */ -GtkWidget *buttonStartup, *buttonOperator, *buttonCaller; -GtkWidget *networkCombo, *callerCombo; +static GtkWidget *buttonStartup, *buttonOperator, *buttonCaller, *buttonPicture; +static GtkWidget *networkCombo, *callerCombo; -int activeTool = TOOL_BRUSH; -int toolStartX, toolStartY, toolLastX, toolLastY; +static int activeTool = TOOL_BRUSH; +static int toolStartX, toolStartY, toolLastX, toolLastY; /* tools for drawing */ static GtkWidget *buttonBrush, *buttonLine, *buttonRectangle; @@ -230,7 +212,6 @@ GdkPixmap *GetPreviewPixmap (GtkWidget *widget) { pixmap = gdk_pixmap_create_from_xpm(widget->window,&mask, &widget->style->bg[GTK_STATE_NORMAL], file); - g_free(file); return pixmap; @@ -244,7 +225,8 @@ void SetPreviewPoint(GtkWidget *widget, int x, int y, int update) { if (!previewAvailable) return; /* there is difference between positiong of startupLogo and others */ - if (bitmap.type != GSM_StartupLogo) { + if (bitmap.type != GSM_StartupLogo && bitmap.type != GSM_7110StartupLogo && + bitmap.type != GSM_6210StartupLogo) { x += PREVIEWJUMPX; y += PREVIEWJUMPY; } @@ -271,7 +253,8 @@ void ClearPreviewPoint(GtkWidget *widget, int x, int y, int update) { if (!previewAvailable) return; /* there is difference between positiong of startupLogo and others */ - if (bitmap.type != GSM_StartupLogo) { + if (bitmap.type != GSM_StartupLogo && bitmap.type != GSM_7110StartupLogo && + bitmap.type != GSM_6210StartupLogo) { x += PREVIEWJUMPX; y += PREVIEWJUMPY; } @@ -299,7 +282,7 @@ int IsPoint(int x, int y) { } void SetPoint(GtkWidget *widget, int x, int y, int update) { - /* difference between settings points in startupLogo and others */ + GSM_SetPointBitmap(&bitmap,x,y); /* draw point to pixmap */ @@ -324,7 +307,7 @@ void SetPoint(GtkWidget *widget, int x, int y, int update) { } void ClearPoint(GtkWidget *widget, int x, int y, int update) { - /* difference between settings points in startupLogo and others */ + GSM_ClearPointBitmap(&bitmap,x,y); /* clear point from pixmap */ @@ -358,7 +341,8 @@ void UpdatePointsRectangle(GtkWidget *widget, int x1, int y1, int x2, int y2) { GdkRectangle updateRect; int x, y, dx = 0, dy = 0; - if (bitmap.type != GSM_StartupLogo) { + if (bitmap.type != GSM_StartupLogo && bitmap.type != GSM_7110StartupLogo && + bitmap.type != GSM_6210StartupLogo) { dx = PREVIEWJUMPX; dy = PREVIEWJUMPY; } @@ -427,8 +411,9 @@ void UpdatePreviewPoints (void) { int x, y, dx = 0, dy = 0; if (!previewPixmap || !previewAvailable) return; - - if (bitmap.type != GSM_StartupLogo) { + + if (bitmap.type != GSM_StartupLogo && bitmap.type != GSM_7110StartupLogo && + bitmap.type != GSM_6210StartupLogo) { dx = PREVIEWJUMPX; dy = PREVIEWJUMPY; } @@ -468,81 +453,97 @@ void ToolBrush(GtkWidget *widget, int column, int row, int button) { } /* TOOL - LINE */ +/* going to rewrite to Bresenham algorithm */ +static void ToolLineUpdate(GtkWidget *widget, int column, int row) { + double delta, y, x; + int i, x1, y1, x2, y2; + + if (abs(toolStartX-toolLastX) >= abs(toolStartY-toolLastY)) { + if (toolStartX > toolLastX) { + x1 = toolLastX; + x2 = toolStartX; + y1 = toolLastY; + y2 = toolStartY; + } else { + x1 = toolStartX; + x2 = toolLastX; + y1 = toolStartY; + y2 = toolLastY; + } + + delta = ((double)(y2-y1))/((double)(x2-x1)); + y = (double)y1; + for (i = x1;i <= x2;i++) { + if (!GSM_IsPointBitmap(&oldBitmap,i,(int)y)) ClearPoint(widget,i,(int)y,0); + y += delta; + } + } else { + if (toolStartY > toolLastY) { + x1 = toolLastX; + x2 = toolStartX; + y1 = toolLastY; + y2 = toolStartY; + } else { + x1 = toolStartX; + x2 = toolLastX; + y1 = toolStartY; + y2 = toolLastY; + } + delta = ((double)(x2-x1))/((double)(y2-y1)); -/* this function clear or draw a line on the screen USED BY TOOLLINEUPDATE */ -void ToolLine(GtkWidget *widget, int x1, int y1, int x2, int y2, int draw) { - int udx, udy, dx, dy, error, loop, xadd, yadd; - - dx = x2 - x1; /* x delta */ - dy = y2 - y1; /* y delta */ - - udx = abs(dx); /* unsigned x delta */ - udy = abs(dy); /* unsigned y delta */ - - if (dx < 0) { xadd = -1; } else { xadd = 1; } /* set directions */ - if (dy < 0) { yadd = -1; } else { yadd = 1; } - - error = 0; - loop = 0; - if (udx > udy) { /* delta X > delta Y */ - do { - error += udy; - - if (error >= udx) { /* is time to move up or down? */ - error -= udx; - y1 += yadd; - } - loop++; - if (draw == 1) { - SetPoint(widget,x1,y1,0); - } else { - /* now clearing line before drawing new one, we must check */ - /* if there is a point in oldBitmap which saves bitmap before */ - /* we starting drawing new line */ - if (!GSM_IsPointBitmap(&oldBitmap,x1,y1)) { - ClearPoint(widget,x1,y1,0); - } - } - x1 += xadd; /* move horizontally */ - } while (loop < udx); /* repeat for x length */ - } else { - do { - error += udx; - if (error >= udy) { /* is time to move left or right? */ - error -= udy; - x1 += xadd; - } - loop++; - if (draw == 1) { - SetPoint(widget,x1,y1,0); - } else { - /* check comment in delta X > delta Y */ - if (!GSM_IsPointBitmap(&oldBitmap,x1,y1)) { - ClearPoint(widget,x1,y1,0); - } - } - y1 += yadd; /* move vertically */ - } while (loop < udy); /* repeat for y length */ - } -} + x = (double)x1; + for (i = y1;i <= y2;i++) { + if (!GSM_IsPointBitmap(&oldBitmap,(int)x,i)) ClearPoint(widget,(int)x,i,0); + x += delta; + } + } + + if (abs(toolStartX-column) >= abs(toolStartY-row)) { + if (toolStartX > column) { + x1 = column; + x2 = toolStartX; + y1 = row; + y2 = toolStartY; + } else { + x1 = toolStartX; + x2 = column; + y1 = toolStartY; + y2 = row; + } -/* going to rewrite to Bresenham algorithm */ -void ToolLineUpdate(GtkWidget *widget, int column, int row) { - /* clear old line */ - ToolLine(widget,toolStartX,toolStartY,toolLastX,toolLastY,0); - /* draw new one */ - ToolLine(widget,toolStartX,toolStartY,column,row,1); + delta = ((double)(y2-y1))/((double)(x2-x1)); + y = (double)y1; + for (i = x1;i <= x2;i++) { + SetPoint(widget,i,(int)y,0); + y += delta; + } + } else { + if (toolStartY > row) { + x1 = column; + x2 = toolStartX; + y1 = row; + y2 = toolStartY; + } else { + x1 = toolStartX; + x2 = column; + y1 = toolStartY; + y2 = row; + } + + delta = ((double)(x2-x1))/((double)(y2-y1)); + + x = (double)x1; + for (i = y1;i <= y2;i++) { + SetPoint(widget,(int)x,i,0); + x += delta; + } + } } /* TOOL - FILLED RECT */ - -/* FIXME - going to rewrite for optimalized version, clearing and */ -/* drawing new parts only before clearing and drawing whole */ -/* filled rectangle - it's too slow on diskless terminal ;(( */ -void ToolFilledRectangleUpdate(GtkWidget *widget, int column, int row) { +static void ToolFilledRectangleUpdate(GtkWidget *widget, int column, int row) { int i, j, x1, y1, x2, y2; - /* swap Xs to x1 < x2 */ if (toolStartX > toolLastX) { x1 = toolLastX; x2 = toolStartX; @@ -551,7 +552,6 @@ void ToolFilledRectangleUpdate(GtkWidget *widget, int column, int row) { x2 = toolLastX; } - /* swap Ys to y1 < y2 */ if (toolStartY > toolLastY) { y1 = toolLastY; y2 = toolStartY; @@ -560,12 +560,10 @@ void ToolFilledRectangleUpdate(GtkWidget *widget, int column, int row) { y2 = toolLastY; } - /* clear one now */ for (j = y1;j <= y2;j++) for (i = x1;i <= x2;i++) if (!GSM_IsPointBitmap(&oldBitmap,i,j)) ClearPoint(widget,i,j,0); - /* swap Xs to x1 < x2 */ if (toolStartX > column) { x1 = column; x2 = toolStartX; @@ -574,7 +572,6 @@ void ToolFilledRectangleUpdate(GtkWidget *widget, int column, int row) { x2 = column; } - /* swap Ys to y1 < y2 */ if (toolStartY > row) { y1 = row; y2 = toolStartY; @@ -583,18 +580,16 @@ void ToolFilledRectangleUpdate(GtkWidget *widget, int column, int row) { y2 = row; } - /* draw new one */ for (j = y1;j <= y2;j++) for (i = x1;i <= x2;i++) SetPoint(widget,i,j,0); } /* TOOL - RECTANGLE */ -void ToolRectangleUpdate(GtkWidget *widget, int column, int row) { +static void ToolRectangleUpdate(GtkWidget *widget, int column, int row) { int i, j, x1, y1, x2, y2; /* clear old rectangle */ - /* swap Xs to x1 < x2 */ if (toolStartX > toolLastX) { x1 = toolLastX; x2 = toolStartX; @@ -603,7 +598,6 @@ void ToolRectangleUpdate(GtkWidget *widget, int column, int row) { x2 = toolLastX; } - /* swap Ys to y1 < y2 */ if (toolStartY > toolLastY) { y1 = toolLastY; y2 = toolStartY; @@ -612,7 +606,6 @@ void ToolRectangleUpdate(GtkWidget *widget, int column, int row) { y2 = toolLastY; } - /* clear old one */ for (i = x1;i <= x2;i++) { if (!GSM_IsPointBitmap(&oldBitmap,i,y1)) ClearPoint(widget,i,y1,0); if (!GSM_IsPointBitmap(&oldBitmap,i,y2)) ClearPoint(widget,i,y2,0); @@ -624,7 +617,6 @@ void ToolRectangleUpdate(GtkWidget *widget, int column, int row) { } /* draw new rectangle */ - /* swap Xs to x1 < x2 */ if (toolStartX > column) { x1 = column; x2 = toolStartX; @@ -633,7 +625,6 @@ void ToolRectangleUpdate(GtkWidget *widget, int column, int row) { x2 = column; } - /* swap Ys to y1 < y2 */ if (toolStartY > row) { y1 = row; y2 = toolStartY; @@ -642,7 +633,6 @@ void ToolRectangleUpdate(GtkWidget *widget, int column, int row) { y2 = row; } - /* draw new one */ for (i = x1;i <= x2;i++) { if (!IsPoint(i,y1)) SetPoint(widget,i,y1,0); if (!IsPoint(i,y2)) SetPoint(widget,i,y2,0); @@ -654,24 +644,20 @@ void ToolRectangleUpdate(GtkWidget *widget, int column, int row) { } } -/* this update tools actions on the screen - this is for optimalization */ -/* eg. for faster redrawing tools actions - we do not need redraw pixel */ -/* by pixel. Faster is redraw whole rectangle which contains all changes */ -void UpdateToolScreen(GtkWidget *widget, int x1, int y1, int x2, int y2) { +static void UpdateToolScreen(GtkWidget *widget, int x1, int y1, int x2, int y2) { GdkRectangle updateRect; /* update preview area */ - if (previewAvailable) { - updateRect.x = PREVIEWSTARTX+x1; - updateRect.y = PREVIEWSTARTY+y1; - if (bitmap.type != GSM_StartupLogo) { - updateRect.x += PREVIEWJUMPX; - updateRect.y += PREVIEWJUMPY; - } - updateRect.width = x2-x1+1; - updateRect.height = y2-y1+1; - gtk_widget_draw(previewArea,&updateRect); - } + updateRect.x = PREVIEWSTARTX+x1; + updateRect.y = PREVIEWSTARTY+y1; + if (bitmap.type != GSM_StartupLogo && bitmap.type != GSM_7110StartupLogo && + bitmap.type != GSM_6210StartupLogo) { + updateRect.x += PREVIEWJUMPX; + updateRect.y += PREVIEWJUMPY; + } + updateRect.width = x2-x1+1; + updateRect.height = y2-y1+1; + gtk_widget_draw(previewArea,&updateRect); /* update drawing area */ updateRect.x = x1 * (POINTSIZE+1); @@ -686,7 +672,7 @@ void UpdateToolScreen(GtkWidget *widget, int x1, int y1, int x2, int y2) { * ************************************* */ -gint PreviewAreaButtonPressEvent(GtkWidget *widget, GdkEventButton *event) { +static gint PreviewAreaButtonPressEvent(GtkWidget *widget, GdkEventButton *event) { previewPixmapNumber = (previewPixmapNumber % 8) + 1; gtk_drawing_area_size(GTK_DRAWING_AREA(previewArea), @@ -695,7 +681,7 @@ gint PreviewAreaButtonPressEvent(GtkWidget *widget, GdkEventButton *event) { return TRUE; } -gint PreviewAreaConfigureEvent(GtkWidget *widget, GdkEventConfigure *event) { +static gint PreviewAreaConfigureEvent(GtkWidget *widget, GdkEventConfigure *event) { if (previewPixmap) gdk_pixmap_unref(previewPixmap); previewPixmap = GetPreviewPixmap(widget); @@ -704,7 +690,7 @@ gint PreviewAreaConfigureEvent(GtkWidget *widget, GdkEventConfigure *event) { return TRUE; } -gint PreviewAreaExposeEvent(GtkWidget *widget, GdkEventExpose *event) { +static gint PreviewAreaExposeEvent(GtkWidget *widget, GdkEventExpose *event) { /* got previewPixmap? */ if (previewPixmap) /* yes - simply redraw some rectangle */ @@ -720,7 +706,7 @@ gint PreviewAreaExposeEvent(GtkWidget *widget, GdkEventExpose *event) { * ******************************** */ -gint DrawingAreaButtonPressEvent(GtkWidget *widget, GdkEventButton *event) { +static gint DrawingAreaButtonPressEvent(GtkWidget *widget, GdkEventButton *event) { /* got drawingPixmap? */ if (drawingPixmap == NULL) return TRUE; @@ -783,14 +769,14 @@ gint DrawingAreaButtonPressEvent(GtkWidget *widget, GdkEventButton *event) { return TRUE; } -gint DrawingAreaButtonReleaseEvent(GtkWidget *widget, GdkEventButton *event) { +static gint DrawingAreaButtonReleaseEvent(GtkWidget *widget, GdkEventButton *event) { if (event->button == 1) mouseButtonPushed = 0; return TRUE; } -gint DrawingAreaMotionNotifyEvent(GtkWidget *widget, GdkEventMotion *event) { +static gint DrawingAreaMotionNotifyEvent(GtkWidget *widget, GdkEventMotion *event) { int x,y; GdkModifierType state; @@ -854,7 +840,7 @@ gint DrawingAreaMotionNotifyEvent(GtkWidget *widget, GdkEventMotion *event) { } /* configureEvent? -> event when someone resize windows, ... */ -gint DrawingAreaConfigureEvent(GtkWidget *widget, GdkEventConfigure *event) { +static gint DrawingAreaConfigureEvent(GtkWidget *widget, GdkEventConfigure *event) { int x, y; /* got drawingPixmap? */ if (drawingPixmap) gdk_pixmap_unref(drawingPixmap); /* got, erase it */ @@ -876,7 +862,7 @@ gint DrawingAreaConfigureEvent(GtkWidget *widget, GdkEventConfigure *event) { return TRUE; } -gint DrawingAreaExposeEvent(GtkWidget *widget, GdkEventExpose *event) { +static gint DrawingAreaExposeEvent(GtkWidget *widget, GdkEventExpose *event) { /* got drawingPixmap? */ if (drawingPixmap) /* got - draw it */ @@ -892,7 +878,7 @@ gint DrawingAreaExposeEvent(GtkWidget *widget, GdkEventExpose *event) { * ***************************************** */ -void GetNetworkInfoEvent(GtkWidget *widget) { +static void GetNetworkInfoEvent(GtkWidget *widget) { GSM_Error error; PhoneEvent *e = (PhoneEvent *)g_malloc(sizeof(PhoneEvent)); D_NetworkInfo *data = (D_NetworkInfo *)g_malloc(sizeof(D_NetworkInfo)); @@ -923,9 +909,9 @@ void GetNetworkInfoEvent(GtkWidget *widget) { GSM_GetNetworkName(networkInfo.NetworkCode)); } -void GetLogoEvent(GtkWidget *widget) { - GSM_Error error; +static void GetLogoEvent(GtkWidget *widget) { int i; + GSM_Error error; PhoneEvent *e = (PhoneEvent *) g_malloc(sizeof(PhoneEvent)); D_Bitmap *data = (D_Bitmap *)g_malloc(sizeof(D_Bitmap)); char *operator = gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(networkCombo)->entry)); @@ -935,12 +921,12 @@ void GetLogoEvent(GtkWidget *widget) { data->bitmap = &bitmap; e->event = Event_GetBitmap; e->data = data; - if (phoneMonitor.supported & PM_CALLERGROUP) { + if (GetModelFeature(FN_CALLERGROUPS)!=0) { for (i = 0;i < 6;i++) if (strcmp(gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(callerCombo)->entry)), xgnokiiConfig.callerGroups[i]) == 0) bitmap.number = i; } - + /* launch event and wait for result */ GUI_InsertEvent(e); pthread_mutex_lock(&getBitmapMutex); @@ -961,7 +947,7 @@ void GetLogoEvent(GtkWidget *widget) { } } -void SetLogoEvent(GtkWidget *widget) { +static void SetLogoEvent(GtkWidget *widget) { GSM_Error error; PhoneEvent *e = (PhoneEvent *)g_malloc(sizeof(PhoneEvent)); D_Bitmap *data = (D_Bitmap *)g_malloc(sizeof(D_Bitmap)); @@ -975,12 +961,15 @@ void SetLogoEvent(GtkWidget *widget) { /* above condition must be there, because if you launch logos before * callerGroups are available, you will see segfault - callerGroups not initialized */ - if (phoneMonitor.supported & PM_CALLERGROUP) { + if (GetModelFeature(FN_CALLERGROUPS)!=0) { for (i = 0;i < 6;i++) if (strcmp(gtk_entry_get_text(GTK_ENTRY(GTK_COMBO(callerCombo)->entry)), xgnokiiConfig.callerGroups[i]) == 0) bitmap.number = i; } } + if (bitmap.type == GSM_StartupLogo) { + bitmap.number=0; + } data->bitmap = &bitmap; e->event = Event_SetBitmap; @@ -1005,14 +994,14 @@ void SetLogoEvent(GtkWidget *widget) { static void ClearLogoEvent(GtkWidget *widget) { - // bitmap.size=bitmap.width*bitmap.height/8; + bitmap.size=bitmap.width*bitmap.height/8; GSM_ClearBitmap(&bitmap); UpdatePoints(widget); } -void InvertLogoEvent(GtkWidget *widget) { +static void InvertLogoEvent(GtkWidget *widget) { int column, row; for (column = 0;column < bitmap.width;column++) @@ -1025,12 +1014,12 @@ void InvertLogoEvent(GtkWidget *widget) { UpdatePoints(widget); } -void UpLogoEvent(GtkWidget *widget) { +static void UpLogoEvent(GtkWidget *widget) { int column, row; GSM_Bitmap tbitmap; - memcpy(&tbitmap,&bitmap,sizeof(GSM_Bitmap)); + tbitmap=bitmap; for (row = 0;row < bitmap.height-1;row++) for (column = 0;column < bitmap.width;column++) @@ -1041,19 +1030,19 @@ void UpLogoEvent(GtkWidget *widget) { for (column = 0;column < bitmap.width;column++) if (GSM_IsPointBitmap(&tbitmap,column,0)) - GSM_SetPointBitmap(&bitmap,column,bitmap.height-1); + GSM_SetPointBitmap(&bitmap,column,row); else - GSM_ClearPointBitmap(&bitmap,column,bitmap.height-1); + GSM_ClearPointBitmap(&bitmap,column,row); UpdatePoints(widget); } -void DownLogoEvent(GtkWidget *widget) { +static void DownLogoEvent(GtkWidget *widget) { int column, row; GSM_Bitmap tbitmap; - memcpy(&tbitmap,&bitmap,sizeof(GSM_Bitmap)); + tbitmap=bitmap; for (row = bitmap.height-1;row > 0;row--) for (column = 0;column < bitmap.width;column++) @@ -1071,12 +1060,12 @@ void DownLogoEvent(GtkWidget *widget) { UpdatePoints(widget); } -void LeftLogoEvent(GtkWidget *widget) { +static void LeftLogoEvent(GtkWidget *widget) { int column, row; GSM_Bitmap tbitmap; - memcpy(&tbitmap,&bitmap,sizeof(GSM_Bitmap)); + tbitmap=bitmap; for (column = 0; column < bitmap.width-1;column++) for (row = 0;row < bitmap.height;row++) @@ -1094,12 +1083,12 @@ void LeftLogoEvent(GtkWidget *widget) { UpdatePoints(widget); } -void RightLogoEvent(GtkWidget *widget) { +static void RightLogoEvent(GtkWidget *widget) { int column, row; GSM_Bitmap tbitmap; - memcpy(&tbitmap,&bitmap,sizeof(GSM_Bitmap)); + tbitmap=bitmap; for (column = bitmap.width-1;column > 0;column--) for (row = 0;row < bitmap.height;row++) @@ -1117,7 +1106,7 @@ void RightLogoEvent(GtkWidget *widget) { UpdatePoints(widget); } -void FlipVerticalLogoEvent(GtkWidget *widget) { +static void FlipVerticalLogoEvent(GtkWidget *widget) { int row, column, temp; for (row = 0;row < (bitmap.height/2);row++) @@ -1137,7 +1126,7 @@ void FlipVerticalLogoEvent(GtkWidget *widget) { UpdatePoints(widget); } -void FlipHorizontalLogoEvent(GtkWidget *widget) { +static void FlipHorizontalLogoEvent(GtkWidget *widget) { int row, column, temp; for (row = 0;row < bitmap.height;row++) @@ -1159,7 +1148,7 @@ void FlipHorizontalLogoEvent(GtkWidget *widget) { } /* this is launched when tool was changed */ -gint ToolTypeEvent(GtkWidget *widget) { +static gint ToolTypeEvent(GtkWidget *widget) { if (GTK_TOGGLE_BUTTON(buttonBrush)->active) activeTool = TOOL_BRUSH; else if (GTK_TOGGLE_BUTTON(buttonLine)->active) activeTool = TOOL_LINE; else if (GTK_TOGGLE_BUTTON(buttonRectangle)->active) activeTool = TOOL_RECTANGLE; else @@ -1170,33 +1159,53 @@ gint ToolTypeEvent(GtkWidget *widget) { } /* this is launched when logo type was change by buttons on toolbar */ -gint LogoTypeEvent(GtkWidget *widget) { +static gint LogoTypeEvent(GtkWidget *widget) { int clear = 0; /* is startupLogo? */ - /* Resize and clear anyway - CK */ - if (GTK_TOGGLE_BUTTON(buttonStartup)->active) { + if (GTK_TOGGLE_BUTTON(buttonStartup)->active && + bitmap.type != GSM_StartupLogo && bitmap.type != GSM_6210StartupLogo && + bitmap.type != GSM_7110StartupLogo) { /* look for old bitmap type, clean if another */ clear = 1; - GSM_ResizeBitmap(&bitmap,GSM_StartupLogo, &statemachine.Phone.Info); - } - - /* has phone support for callerGroups? */ - if (phoneMonitor.supported & PM_CALLERGROUP) { - if (GTK_TOGGLE_BUTTON(buttonCaller)->active && bitmap.type != GSM_CallerLogo) { - /* previous was startup? clear and draw batteries, signal, ... */ - /* Clear anyway for 7110...CK */ - clear = 1; - GSM_ResizeBitmap(&bitmap,GSM_CallerLogo, &statemachine.Phone.Info); + + if (!strcmp(xgnokiiConfig.model,"7110")) { + GSM_ResizeBitmap(&bitmap,GSM_7110StartupLogo); + } else if (!strcmp(xgnokiiConfig.model,"6210") || !strcmp(xgnokiiConfig.model,"6250")) { + GSM_ResizeBitmap(&bitmap,GSM_6210StartupLogo); + } else { + GSM_ResizeBitmap(&bitmap,GSM_StartupLogo); } } + + /* new type is PictureImage */ + if (GTK_TOGGLE_BUTTON(buttonPicture)->active && bitmap.type != GSM_PictureImage) { + /* look for old bitmap type, clean if another */ + clear = 1; + GSM_ResizeBitmap(&bitmap,GSM_PictureImage); + } + + /* new type is callerLogo */ + if (GTK_TOGGLE_BUTTON(buttonCaller)->active && bitmap.type != GSM_CallerLogo) { + /* previous was startup or Picture ? clear and draw batteries, signal, ... */ + if (bitmap.type != GSM_OperatorLogo) clear = 1; + GSM_ResizeBitmap(&bitmap,GSM_CallerLogo); + } /* is new type operatorLogo? */ - if (GTK_TOGGLE_BUTTON(buttonOperator)->active && bitmap.type != GSM_OperatorLogo) { - /* previous startup? clear and draw batteries, signal, ... */ - /* Clear anyway for 7110..CK */ - clear = 1; - GSM_ResizeBitmap(&bitmap,GSM_OperatorLogo, &statemachine.Phone.Info); + if (GTK_TOGGLE_BUTTON(buttonOperator)->active && bitmap.type != GSM_OperatorLogo && + bitmap.type != GSM_7110OperatorLogo) { + + /* previous startup or Picture ? clear and draw batteries, signal, ... */ + if (bitmap.type != GSM_CallerLogo) clear = 1; + + if (!strcmp(xgnokiiConfig.model,"7110")) { + GSM_ResizeBitmap(&bitmap,GSM_7110OperatorLogo); + } else if (!strcmp(xgnokiiConfig.model,"6210") || !strcmp(xgnokiiConfig.model,"6250")) { + GSM_ResizeBitmap(&bitmap,GSM_7110OperatorLogo); + } else { + GSM_ResizeBitmap(&bitmap,GSM_OperatorLogo); + } } /* must clear? */ @@ -1218,7 +1227,7 @@ gint LogoTypeEvent(GtkWidget *widget) { return 0; } -inline void CloseLogosWindow (void) { +static inline void CloseLogosWindow (void) { gtk_widget_hide(GUI_LogosWindow); } @@ -1288,7 +1297,7 @@ void ImportFileSelected(GtkWidget *w, GtkFileSelection *fs) gtk_widget_show(errorDialog.dialog); g_free(buf); return; - } else fclose(f); + } error=GSM_ReadBitmapFile(fileName,&tbitmap); if (error!=GE_NONE) { @@ -1304,19 +1313,42 @@ void ImportFileSelected(GtkWidget *w, GtkFileSelection *fs) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(buttonStartup),false); gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(buttonOperator),false); gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(buttonCaller),false); - - if (tbitmap.type==GSM_OperatorLogo) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(buttonOperator),true); - if (tbitmap.type==GSM_StartupLogo) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(buttonStartup),true); + gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(buttonPicture),false); + + if (tbitmap.type==GSM_OperatorLogo || tbitmap.type==GSM_7110OperatorLogo) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(buttonOperator),true); + if (tbitmap.type==GSM_StartupLogo || tbitmap.type==GSM_7110StartupLogo || tbitmap.type==GSM_6210StartupLogo) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(buttonStartup),true); if (tbitmap.type==GSM_CallerLogo) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(buttonCaller),true); + if (tbitmap.type==GSM_PictureImage) gtk_toggle_button_set_state(GTK_TOGGLE_BUTTON(buttonPicture),true); memcpy(&bitmap,&tbitmap,sizeof(GSM_Bitmap)); + + if (!strcmp(xgnokiiConfig.model,"7110")) { //7110 + if (bitmap.type==GSM_StartupLogo || bitmap.type==GSM_6210StartupLogo) + GSM_ResizeBitmap(&bitmap,GSM_7110StartupLogo); + + if (bitmap.type==GSM_OperatorLogo) + GSM_ResizeBitmap(&bitmap,GSM_7110OperatorLogo); + + } else if (!strcmp(xgnokiiConfig.model,"6210") || !strcmp(xgnokiiConfig.model,"6250")) { //6210,6250 + if (bitmap.type==GSM_StartupLogo || bitmap.type==GSM_7110StartupLogo) + GSM_ResizeBitmap(&bitmap,GSM_6210StartupLogo); + + if (bitmap.type==GSM_OperatorLogo) + GSM_ResizeBitmap(&bitmap,GSM_7110OperatorLogo); + + } else { + if (bitmap.type==GSM_6210StartupLogo || bitmap.type==GSM_7110StartupLogo) + GSM_ResizeBitmap(&bitmap,GSM_StartupLogo); + if (bitmap.type==GSM_7110OperatorLogo) + GSM_ResizeBitmap(&bitmap,GSM_OperatorLogo); + } UpdatePoints(drawingArea); } void SaveLogoAs(GtkWidget *widget) { - FileSelection=gtk_file_selection_new (_("Save logo as ...")); + FileSelection=gtk_file_selection_new ("Save logo as ..."); gtk_signal_connect ( GTK_OBJECT (GTK_FILE_SELECTION (FileSelection)->ok_button), @@ -1343,7 +1375,7 @@ void SaveLogo(GtkWidget *widget) void OpenLogo(GtkWidget *widget) { - FileSelection=gtk_file_selection_new (_("Open logo...")); + FileSelection=gtk_file_selection_new ("Open logo..."); gtk_signal_connect ( GTK_OBJECT (GTK_FILE_SELECTION (FileSelection)->ok_button), @@ -1383,7 +1415,7 @@ static GtkItemFactoryEntry logosMenuItems[] = { { NULL, "V", FlipVerticalLogoEvent, 0, NULL}, }; -void InitLogosMenu (void) { +static void InitLogosMenu (void) { logosMenuItems[0].path = g_strdup(_("/_File")); logosMenuItems[1].path = g_strdup(_("/File/_Open")); logosMenuItems[2].path = g_strdup(_("/File/_Save")); @@ -1430,105 +1462,101 @@ void GUI_CreateLogosWindow (void) { /* realize top level window for logos */ GUI_LogosWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL); - gtk_window_set_wmclass(GTK_WINDOW(GUI_LogosWindow), "LogosWindow", "Xgnokii"); - gtk_window_set_policy(GTK_WINDOW(GUI_LogosWindow), 1, 1, 1); - gtk_window_set_title(GTK_WINDOW(GUI_LogosWindow), _("Logos")); - gtk_signal_connect(GTK_OBJECT(GUI_LogosWindow), "delete_event", - GTK_SIGNAL_FUNC(DeleteEvent), NULL); + gtk_window_set_policy(GTK_WINDOW(GUI_LogosWindow),1,1,1); + gtk_window_set_title(GTK_WINDOW(GUI_LogosWindow),_("Logos")); + gtk_signal_connect(GTK_OBJECT(GUI_LogosWindow),"delete_event", + GTK_SIGNAL_FUNC(DeleteEvent),NULL); gtk_widget_realize(GUI_LogosWindow); - CreateErrorDialog(&errorDialog, GUI_LogosWindow); - CreateInfoDialog(&infoDialog, GUI_LogosWindow); + CreateErrorDialog(&errorDialog,GUI_LogosWindow); + CreateInfoDialog(&infoDialog,GUI_LogosWindow); accelGroup = gtk_accel_group_new(); - gtk_accel_group_attach(accelGroup, GTK_OBJECT(GUI_LogosWindow)); + gtk_accel_group_attach(accelGroup,GTK_OBJECT(GUI_LogosWindow)); /* create main vbox */ - vbox = gtk_vbox_new(FALSE, 1); - gtk_container_add(GTK_CONTAINER(GUI_LogosWindow), vbox); + vbox = gtk_vbox_new(FALSE,1); + gtk_container_add(GTK_CONTAINER(GUI_LogosWindow),vbox); gtk_widget_show(vbox); - itemFactory = gtk_item_factory_new(GTK_TYPE_MENU_BAR, "
", accelGroup); - gtk_item_factory_create_items(itemFactory, nMenuItems, logosMenuItems, NULL); - menuBar = gtk_item_factory_get_widget(itemFactory, "
"); + itemFactory = gtk_item_factory_new(GTK_TYPE_MENU_BAR,"
",accelGroup); + gtk_item_factory_create_items(itemFactory,nMenuItems,logosMenuItems,NULL); + menuBar = gtk_item_factory_get_widget(itemFactory,"
"); - gtk_box_pack_start(GTK_BOX(vbox), menuBar, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox),menuBar,FALSE,FALSE,0); gtk_widget_show(menuBar); /* toolbar */ - toolBar = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL, GTK_TOOLBAR_ICONS); - gtk_toolbar_set_button_relief(GTK_TOOLBAR(toolBar), GTK_RELIEF_NORMAL); - gtk_toolbar_set_style(GTK_TOOLBAR(toolBar), GTK_TOOLBAR_ICONS); + toolBar = gtk_toolbar_new(GTK_ORIENTATION_HORIZONTAL,GTK_TOOLBAR_ICONS); + gtk_toolbar_set_button_relief(GTK_TOOLBAR(toolBar),GTK_RELIEF_NORMAL); + gtk_toolbar_set_style(GTK_TOOLBAR(toolBar),GTK_TOOLBAR_ICONS); - gtk_toolbar_append_item(GTK_TOOLBAR(toolBar), NULL, _("Clear logo"), NULL, - NewPixmap(New_xpm, GUI_LogosWindow->window, + gtk_toolbar_append_item(GTK_TOOLBAR(toolBar),NULL,"Clear logo",NULL, + NewPixmap(New_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - (GtkSignalFunc)ClearLogoEvent, toolBar); + (GtkSignalFunc)ClearLogoEvent,toolBar); gtk_toolbar_append_space(GTK_TOOLBAR(toolBar)); - gtk_toolbar_append_item(GTK_TOOLBAR(toolBar), NULL, _("Get logo"), NULL, - NewPixmap(Read_xpm, GUI_LogosWindow->window, + gtk_toolbar_append_item(GTK_TOOLBAR(toolBar),NULL,"Get logo",NULL, + NewPixmap(Read_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - (GtkSignalFunc)GetLogoEvent, toolBar); + (GtkSignalFunc)GetLogoEvent,toolBar); - gtk_toolbar_append_item(GTK_TOOLBAR(toolBar), NULL, _("Set logo"), NULL, - NewPixmap(Send_xpm, GUI_LogosWindow->window, + gtk_toolbar_append_item(GTK_TOOLBAR(toolBar),NULL,"Set logo",NULL, + NewPixmap(Send_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - (GtkSignalFunc)SetLogoEvent, toolBar); + (GtkSignalFunc)SetLogoEvent,toolBar); gtk_toolbar_append_space(GTK_TOOLBAR(toolBar)); - gtk_toolbar_append_item (GTK_TOOLBAR (toolBar), NULL, _("Import from file"), NULL, - NewPixmap(Open_xpm, GUI_LogosWindow->window, - &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - (GtkSignalFunc) OpenLogo, NULL); - gtk_toolbar_append_item (GTK_TOOLBAR (toolBar), NULL, _("Export to file"), NULL, - NewPixmap(Save_xpm, GUI_LogosWindow->window, - &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - (GtkSignalFunc) SaveLogo, NULL); - - gtk_toolbar_append_space (GTK_TOOLBAR (toolBar)); - buttonStartup = gtk_toolbar_append_element(GTK_TOOLBAR(toolBar), - GTK_TOOLBAR_CHILD_RADIOBUTTON, NULL, NULL, _("Startup logo"), - "", NewPixmap(Startup_logo_xpm, GUI_LogosWindow->window, + GTK_TOOLBAR_CHILD_RADIOBUTTON,NULL,NULL,"Startup logo", + "",NewPixmap(Startup_logo_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - GTK_SIGNAL_FUNC(LogoTypeEvent), NULL); + GTK_SIGNAL_FUNC(LogoTypeEvent),NULL); buttonOperator = gtk_toolbar_append_element(GTK_TOOLBAR(toolBar), - GTK_TOOLBAR_CHILD_RADIOBUTTON, buttonStartup, NULL, _("Operator logo"), - "", NewPixmap(Operator_logo_xpm, GUI_LogosWindow->window, + GTK_TOOLBAR_CHILD_RADIOBUTTON,buttonStartup,NULL,"Operator logo", + "",NewPixmap(Operator_logo_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - GTK_SIGNAL_FUNC(LogoTypeEvent), NULL); + GTK_SIGNAL_FUNC(LogoTypeEvent),NULL); buttonCaller = gtk_toolbar_append_element(GTK_TOOLBAR(toolBar), GTK_TOOLBAR_CHILD_RADIOBUTTON, buttonOperator, - NULL, _("Caller logo"), - "", NewPixmap(Caller_logo_xpm, GUI_LogosWindow->window, + NULL,"Caller logo", + "",NewPixmap(Caller_logo_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - GTK_SIGNAL_FUNC(LogoTypeEvent), NULL); + GTK_SIGNAL_FUNC(LogoTypeEvent),NULL); + + buttonPicture = gtk_toolbar_append_element(GTK_TOOLBAR(toolBar), + GTK_TOOLBAR_CHILD_RADIOBUTTON, + buttonOperator, + NULL,"Picture image", + "",NewPixmap(Caller_logo_xpm,GUI_LogosWindow->window, + &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), + GTK_SIGNAL_FUNC(LogoTypeEvent),NULL); gtk_toolbar_append_space(GTK_TOOLBAR(toolBar)); networkCombo = gtk_combo_new(); - gtk_combo_set_use_arrows_always(GTK_COMBO(networkCombo), 1); - while (strcmp(GSM_Networks[i].Name, "unknown")) - glistNetwork = g_list_insert_sorted(glistNetwork, GSM_Networks[i++].Name, + gtk_combo_set_use_arrows_always(GTK_COMBO(networkCombo),1); + while (strcmp(GSM_Networks[i].Name,"unknown")) + glistNetwork = g_list_insert_sorted(glistNetwork,GSM_Networks[i++].Name, (GCompareFunc)strcmp); - gtk_combo_set_popdown_strings(GTK_COMBO(networkCombo), glistNetwork); - gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(networkCombo)->entry), FALSE); - gtk_toolbar_append_widget(GTK_TOOLBAR(toolBar), networkCombo, "", ""); + gtk_combo_set_popdown_strings(GTK_COMBO(networkCombo),glistNetwork); + gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(networkCombo)->entry),FALSE); + gtk_toolbar_append_widget(GTK_TOOLBAR(toolBar),networkCombo,"",""); gtk_widget_show(networkCombo); g_list_free(glistNetwork); callerCombo = gtk_combo_new(); - gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(callerCombo)->entry), FALSE); - gtk_toolbar_append_widget(GTK_TOOLBAR(toolBar), callerCombo, "", ""); + gtk_entry_set_editable(GTK_ENTRY(GTK_COMBO(callerCombo)->entry),FALSE); + gtk_toolbar_append_widget(GTK_TOOLBAR(toolBar),callerCombo,"",""); gtk_widget_show(callerCombo); - gtk_box_pack_start(GTK_BOX(vbox), toolBar, FALSE, FALSE, 0); + gtk_box_pack_start(GTK_BOX(vbox),toolBar,FALSE,FALSE,0); gtk_widget_show(toolBar); /* vertical separator */ @@ -1543,10 +1571,17 @@ void GUI_CreateLogosWindow (void) { /* set GSM_Bitmap width,height needed for creating drawinArea * we are starting, default is startupLogo */ - bitmap.type = GSM_StartupLogo; - bitmap.height = 48; - bitmap.width = 84; + bitmap.type = GSM_7110StartupLogo; + bitmap.height = 65; + bitmap.width = 96; bitmap.size = bitmap.height * bitmap.width / 8; + if (!strcmp(xgnokiiConfig.model,"7110")) { //7110 + GSM_ResizeBitmap(&bitmap,GSM_7110StartupLogo); + } else if (!strcmp(xgnokiiConfig.model,"6210") || !strcmp(xgnokiiConfig.model,"6250")) { //6210,6250 + GSM_ResizeBitmap(&bitmap,GSM_6210StartupLogo); + } else { + GSM_ResizeBitmap(&bitmap,GSM_StartupLogo); + } drawingAreaWidth = bitmap.width * (POINTSIZE+1)+1; drawingAreaHeight = bitmap.height * (POINTSIZE+1)+1; @@ -1617,47 +1652,47 @@ void GUI_CreateLogosWindow (void) { gtk_toolbar_set_style(GTK_TOOLBAR(vertToolBar),GTK_TOOLBAR_ICONS); buttonBrush = gtk_toolbar_append_element(GTK_TOOLBAR(vertToolBar), - GTK_TOOLBAR_CHILD_RADIOBUTTON, NULL, NULL, _("Brush tool"), - "", NewPixmap(Tool_brush_xpm, GUI_LogosWindow->window, + GTK_TOOLBAR_CHILD_RADIOBUTTON,NULL,NULL,"Brush tool", + "",NewPixmap(Tool_brush_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - GTK_SIGNAL_FUNC(ToolTypeEvent), NULL); + GTK_SIGNAL_FUNC(ToolTypeEvent),NULL); buttonLine = gtk_toolbar_append_element(GTK_TOOLBAR(vertToolBar), - GTK_TOOLBAR_CHILD_RADIOBUTTON, buttonBrush, NULL, _("Line tool"), - "", NewPixmap(Tool_line_xpm, GUI_LogosWindow->window, + GTK_TOOLBAR_CHILD_RADIOBUTTON,buttonBrush,NULL,"Line tool", + "",NewPixmap(Tool_line_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - GTK_SIGNAL_FUNC(ToolTypeEvent), NULL); + GTK_SIGNAL_FUNC(ToolTypeEvent),NULL); buttonRectangle = gtk_toolbar_append_element(GTK_TOOLBAR(vertToolBar), - GTK_TOOLBAR_CHILD_RADIOBUTTON, buttonLine, NULL, _("Rectangle tool"), - "", NewPixmap(Tool_rectangle_xpm, GUI_LogosWindow->window, + GTK_TOOLBAR_CHILD_RADIOBUTTON,buttonLine,NULL,"Rectangle tool", + "",NewPixmap(Tool_rectangle_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - GTK_SIGNAL_FUNC(ToolTypeEvent), NULL); + GTK_SIGNAL_FUNC(ToolTypeEvent),NULL); buttonFilledRectangle = gtk_toolbar_append_element(GTK_TOOLBAR(vertToolBar), - GTK_TOOLBAR_CHILD_RADIOBUTTON, buttonRectangle, NULL, - _("Filled rectangle tool"), - "", NewPixmap(Tool_filled_rectangle_xpm, + GTK_TOOLBAR_CHILD_RADIOBUTTON,buttonRectangle,NULL, + "Filled rectangle tool", + "",NewPixmap(Tool_filled_rectangle_xpm, GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - GTK_SIGNAL_FUNC(ToolTypeEvent), NULL); + GTK_SIGNAL_FUNC(ToolTypeEvent),NULL); gtk_toolbar_append_space(GTK_TOOLBAR(vertToolBar)); - gtk_toolbar_append_item(GTK_TOOLBAR(vertToolBar), NULL, _("Invert logo"), NULL, - NewPixmap(Edit_invert_xpm, GUI_LogosWindow->window, + gtk_toolbar_append_item(GTK_TOOLBAR(vertToolBar),NULL,"Invert logo",NULL, + NewPixmap(Edit_invert_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - (GtkSignalFunc)InvertLogoEvent, vertToolBar); + (GtkSignalFunc)InvertLogoEvent,vertToolBar); - gtk_toolbar_append_item(GTK_TOOLBAR(vertToolBar), NULL, _("Horizontal flip"), NULL, - NewPixmap(Edit_flip_horizontal_xpm, GUI_LogosWindow->window, + gtk_toolbar_append_item(GTK_TOOLBAR(vertToolBar),NULL,"Horizontal flip",NULL, + NewPixmap(Edit_flip_horizontal_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - (GtkSignalFunc)FlipHorizontalLogoEvent, vertToolBar); + (GtkSignalFunc)FlipHorizontalLogoEvent,vertToolBar); - gtk_toolbar_append_item(GTK_TOOLBAR(vertToolBar), NULL, _("Vertical flip"), NULL, - NewPixmap(Edit_flip_vertical_xpm, GUI_LogosWindow->window, + gtk_toolbar_append_item(GTK_TOOLBAR(vertToolBar),NULL,"Vertical flip",NULL, + NewPixmap(Edit_flip_vertical_xpm,GUI_LogosWindow->window, &GUI_LogosWindow->style->bg[GTK_STATE_NORMAL]), - (GtkSignalFunc)FlipVerticalLogoEvent, vertToolBar); + (GtkSignalFunc)FlipVerticalLogoEvent,vertToolBar); gtk_box_pack_start(GTK_BOX(hbox),vertToolBar,FALSE,FALSE,0); @@ -1680,26 +1715,17 @@ void GUI_RefreshLogosGroupsCombo (void) { } void GUI_ShowLogosWindow (void) { - /* Set network name taken from the phone */ - GetNetworkInfoEvent(NULL); - /* if phone support caller groups, read callerGroups names */ - if (phoneMonitor.supported & PM_CALLERGROUP) { - if (xgnokiiConfig.callerGroups[0] == NULL) { - GUI_Refresh(); - GUI_InitCallerGroupsInf (); - } - if (!callersGroupsInitialized) GUI_RefreshLogosGroupsCombo (); - gtk_widget_show(buttonCaller); - gtk_widget_show(callerCombo); - } else { - /* if not supported, hide widget for handling callerGroups */ - gtk_widget_hide(buttonCaller); - gtk_widget_hide(callerCombo); - } - /* Call to reset Startup logo size */ - LogoTypeEvent(GUI_LogosWindow); + gtk_widget_show(buttonCaller); + gtk_widget_show(callerCombo); + + if (xgnokiiConfig.callerGroups[0] == NULL) { + GUI_Refresh(); + GUI_InitCallerGroupsInf (); + } + if (!callersGroupsInitialized) GUI_RefreshLogosGroupsCombo (); + gtk_widget_show(GUI_LogosWindow); if (!previewAvailable && showPreviewErrorDialog) {