--- apps/screen_access.c	2007-05-10 12:39:13.750000000 +0200
+++ apps/screen_access.c	2007-05-10 12:55:48.875000000 +0200
@@ -48,8 +48,10 @@
             screen->getleftmargin=&lcd_remote_getleftmargin;
             screen->getrightmargin=&lcd_remote_getrightmargin;
             screen->getstringsize=&lcd_remote_getstringsize;
-#if 1 /* all remote LCDs are bitmapped so far */
-            screen->setfont=&lcd_remote_setfont;
+#if 1 /* all remote LCDs are bitmapped so far */
+            screen->set_custom_width=&lcd_remote_set_custom_width;
+            screen->get_custom_width=&lcd_remote_get_custom_width;
+            screen->setfont=&lcd_remote_setfont;            
             screen->setfont(FONT_UI);
             screen->mono_bitmap=&lcd_remote_mono_bitmap;
             screen->mono_bitmap_part=&lcd_remote_mono_bitmap_part;
@@ -122,6 +124,8 @@
             screen->width=LCD_WIDTH;
             screen->height=LCD_HEIGHT;
             screen->setmargins=&lcd_setmargins;
+            screen->set_custom_width=&lcd_set_custom_width;
+            screen->get_custom_width=&lcd_get_custom_width;
             screen->getymargin=&lcd_getymargin;
             screen->getleftmargin=&lcd_getleftmargin;
             screen->getrightmargin=&lcd_getrightmargin; 

--- apps/screen_access.h	2007-05-10 12:39:13.765625000 +0200
+++ apps/screen_access.h	2007-05-10 12:56:33.906250000 +0200
@@ -65,7 +65,9 @@
 #ifdef HAS_BUTTONBAR
     bool has_buttonbar;
 #endif
-    void (*setmargins)(int x1, int x2, int y);
+    void (*setmargins)(int x1, int x2, int y);
+    void (*set_custom_width)(int width);
+    int (*get_custom_width)(void);
     int (*getleftmargin)(void);
     int (*getrightmargin)(void);
     int (*getymargin)(void);
--- firmware/drivers/lcd-16bit.c	2007-05-10 12:39:13.734375000 +0200
+++ firmware/drivers/lcd-16bit.c	2007-05-10 12:53:52.890625000 +0200
@@ -144,6 +144,16 @@
     ymargin = y;
 }
 
+void lcd_set_custom_width(int width)
+{
+    rightmargin = leftmargin+width;
+}
+
+int lcd_get_custom_width(void)
+{
+    return rightmargin;
+}
+
 int lcd_getleftmargin(void)
 {
     return leftmargin;
--- firmware/drivers/lcd-2bit-vert.c	2007-05-10 12:39:13.796875000 +0200
+++ firmware/drivers/lcd-2bit-vert.c	2007-05-10 12:53:52.968750000 +0200
@@ -150,6 +150,16 @@
     return ymargin;
 }
 
+void lcd_set_custom_width(int width)
+{
+	rightmargin = leftmargin+width;
+}
+
+int lcd_get_custom_width(void)
+{
+	return rightmargin;
+}
+
 void lcd_setfont(int newfont)
 {
     curfont = newfont;
--- firmware/drivers/lcd-remote-2bit-vi.c	2007-05-10 12:39:13.781250000 +0200
+++ firmware/drivers/lcd-remote-2bit-vi.c	2007-05-10 12:53:52.968750000 +0200
@@ -151,6 +151,16 @@
     return ymargin;
 }
 
+void lcd_remote_set_custom_width(int width)
+{
+	rightmargin = leftmargin+width;
+}
+
+int lcd_remote_get_custom_width(void)
+{
+	return rightmargin;
+} 
+
 void lcd_remote_setfont(int newfont)
 {
     curfont = newfont;
--- firmware/export/lcd-remote.h	2007-05-10 12:39:13.781250000 +0200
+++ firmware/export/lcd-remote.h	2007-05-10 12:53:52.953125000 +0200
@@ -146,6 +146,8 @@
 extern int  lcd_remote_getleftmargin(void);
 extern int  lcd_remote_getrightmargin(void);
 extern int  lcd_remote_getymargin(void);
+extern void lcd_remote_set_custom_width(int width);
+extern int lcd_remote_get_custom_width(void);
 extern void lcd_remote_setfont(int font);
 extern int  lcd_remote_getstringsize(const unsigned char *str, int *w, int *h);
 
--- firmware/export/lcd.h	2007-05-10 12:39:13.765625000 +0200
+++ firmware/export/lcd.h	2007-05-10 12:57:34.421875000 +0200
@@ -61,7 +61,11 @@
 extern void lcd_setmargins(int leftmargin, int rightmargin, int ymargin);
 extern int  lcd_getleftmargin(void);
 extern int  lcd_getrightmargin(void);
-extern int  lcd_getymargin(void);
+extern int  lcd_getymargin(void);
+#ifdef HAVE_LCD_BITMAP
+extern int  lcd_get_custom_width(void);
+extern void  lcd_set_custom_width(int width);
+#endif
 extern int  lcd_getstringsize(const unsigned char *str, int *w, int *h);
 
 extern void lcd_update(void);
