00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #ifndef GWEN_UI_TEXTWIDGET_H
00029 #define GWEN_UI_TEXTWIDGET_H
00030
00031 #include <gwenhywfar/ui/widget.h>
00032 #include <gwenhywfar/xml.h>
00033 #include <gwenhywfar/buffer.h>
00034
00035
00036 typedef struct GWEN_TW_LINE GWEN_TW_LINE;
00037 GWEN_LIST_FUNCTION_DEFS(GWEN_TW_LINE, GWEN_TWLine)
00038
00039
00040 #define GWEN_TEXTWIDGET_FLAGS_BREAKLINES 0x00010000
00041 #define GWEN_TEXTWIDGET_FLAGS_LINEMODE 0x00020000
00042 #define GWEN_TEXTWIDGET_FLAGS_HIGHLIGHT 0x00040000
00043 #define GWEN_TEXTWIDGET_FLAGS_DATACHANGE 0x00080000
00044 #define GWEN_TEXTWIDGET_FLAGS_FIXED 0x00100000
00045 #define GWEN_TEXTWIDGET_FLAGS_CONST 0x00200000
00046
00047
00048 GWEN_WIDGET *GWEN_TextWidget_new(GWEN_WIDGET *parent,
00049 GWEN_TYPE_UINT32 flags,
00050 const char *name,
00051 const char *text,
00052 int x, int y,
00053 int width, int height);
00054
00055 void GWEN_TextWidget_SetVirtualSize(GWEN_WIDGET *w,
00056 int vwidth,
00057 int vheight);
00058
00059 int GWEN_TextWidget_GetVirtualWidth(const GWEN_WIDGET *w);
00060 int GWEN_TextWidget_GetVirtualHeight(const GWEN_WIDGET *w);
00061
00062 int GWEN_TextWidget_GetMaxWidth(const GWEN_WIDGET *w);
00063
00064
00065 GWEN_TW_LINE *GWEN_TextWidget_LineOpen(GWEN_WIDGET *w, int n, int cre);
00066 int GWEN_TextWidget_LineClose(GWEN_WIDGET *w,
00067 GWEN_TW_LINE *l,
00068 int force);
00069 int GWEN_TextWidget_LineSetBorders(GWEN_WIDGET *w,
00070 GWEN_TW_LINE *l,
00071 int leftBorder,
00072 int rightBorder);
00073
00074 int GWEN_TextWidget_LineSetInsert(GWEN_WIDGET *w,
00075 GWEN_TW_LINE *l,
00076 int insert);
00077 int GWEN_TextWidget_LineSetAttributes(GWEN_WIDGET *w,
00078 GWEN_TW_LINE *l,
00079 GWEN_TYPE_UINT32 atts);
00080 int GWEN_TextWidget_LineSetPos(GWEN_WIDGET *w, GWEN_TW_LINE *l, int pos);
00081 int GWEN_TextWidget_LineClear(GWEN_WIDGET *w, GWEN_TW_LINE *l);
00082 int GWEN_TextWidget_LineDelete(GWEN_WIDGET *w, GWEN_TW_LINE *l, int n);
00083 int GWEN_TextWidget_LineRedraw(GWEN_WIDGET *w, GWEN_TW_LINE *l);
00084 int GWEN_TextWidget_LineWriteText(GWEN_WIDGET *w,
00085 GWEN_TW_LINE *l,
00086 const char *text,
00087 int len);
00088
00089 int GWEN_TextWidget_EnsureVisible(GWEN_WIDGET *w,
00090 int x, int y,
00091 int width, int height);
00092
00093 int GWEN_TextWidget_GetLeft(const GWEN_WIDGET *w);
00094 int GWEN_TextWidget_GetTop(const GWEN_WIDGET *w);
00095
00096
00097 GWEN_TW_LINE_LIST *GWEN_TextWidget_XMLToLines(GWEN_XMLNODE *n,
00098 int leftBorder,
00099 int rightBorder);
00100 GWEN_TW_LINE_LIST *GWEN_TextWidget_TextToLines(const char *s,
00101 int leftBorder,
00102 int rightBorder);
00103
00104 int GWEN_TextWidget_SetPreparedText(GWEN_WIDGET *w,
00105 GWEN_TW_LINE_LIST *ll,
00106 GWEN_EVENT_SETTEXT_MODE m);
00107
00108 int GWEN_TextWidget_GetMaxListWidth(GWEN_TW_LINE_LIST *ll);
00109 int GWEN_TextWidget_SetPos(GWEN_WIDGET *w, int n);
00110
00111 GWEN_BUFFER *GWEN_TextWidget_GetText(const GWEN_WIDGET *w, int asAscii);
00112
00113 void GWEN_TextWidget_Clear(GWEN_WIDGET *w);
00114
00115
00116
00117 #endif
00118
00119