Support focus animation for listbox
[vuplus_dvbapp] / lib / gdi / grc.h
index 3b8201a..e91e7e8 100644 (file)
@@ -64,6 +64,13 @@ struct gOpcode
                shutdown,
                
                setCompositing,
+               sendShow,
+               sendHide,
+#ifdef USE_LIBVUGLES2
+               sendShowItem,
+               setFlush,
+               setView,
+#endif
        } opcode;
 
        gDC *dc;
@@ -84,6 +91,8 @@ struct gOpcode
                        eRect area;
                        char *text;
                        int flags;
+                       int border;
+                       gRGB bordercolor;
                } *renderText;
 
                struct prenderPara
@@ -142,6 +151,31 @@ struct gOpcode
                } *setOffset;
                
                gCompositingData *setCompositing;
+
+               struct psetShowHideInfo
+               {
+                       ePoint point;
+                       eSize size;
+               } *setShowHideInfo;
+
+#ifdef USE_LIBVUGLES2
+               struct psetShowItemInfo
+               {
+                       long dir;
+                       ePoint point;
+                       eSize size;
+               } *setShowItemInfo;
+
+               struct psetFlush
+               {
+                       bool enable;
+               } *setFlush;
+
+               struct psetViewInfo
+               {
+                       eSize size;
+               } *setViewInfo;
+#endif
        } parm;
 };
 
@@ -226,7 +260,7 @@ public:
                
                RT_WRAP = 32
        };
-       void renderText(const eRect &position, const std::string &string, int flags=0);
+       void renderText(const eRect &position, const std::string &string, int flags=0, gRGB bordercolor=gRGB(), int border=0);
        
        void renderPara(eTextPara *para, ePoint offset=ePoint(0, 0));
 
@@ -265,6 +299,13 @@ public:
        void setCompositing(gCompositingData *comp);
        
        void flush();
+       void sendShow(ePoint point, eSize size);
+       void sendHide(ePoint point, eSize size);
+#ifdef USE_LIBVUGLES2
+       void sendShowItem(long dir, ePoint point, eSize size);
+       void setFlush(bool val);
+       void setView(eSize size);
+#endif
 };
 
 class gDC: public iObject
@@ -286,7 +327,7 @@ protected:
        eRect m_spinner_pos;
        int m_spinner_num, m_spinner_i;
 public:
-       virtual void exec(gOpcode *opcode);
+       virtual void exec(const gOpcode *opcode);
        gDC(gPixmap *pixmap);
        gDC();
        virtual ~gDC();
@@ -296,10 +337,10 @@ public:
        virtual eSize size() { return m_pixmap->size(); }
        virtual int islocked() { return 0; }
        
-       void enableSpinner();
-       void disableSpinner();
-       void incrementSpinner();
-       void setSpinner(eRect pos, ePtr<gPixmap> *pic, int len);
+       virtual void enableSpinner();
+       virtual void disableSpinner();
+       virtual void incrementSpinner();
+       virtual void setSpinner(eRect pos, ePtr<gPixmap> *pic, int len);
 };
 
 #endif