#include <stdio.h>#include <stdlib.h>#include <string.h>#include <gtk/gtk.h>#include "../ut/ut_umem.h"#include "../gui/gui_types.h"#include "../gui/gui_base.h"#include "../gui/gui_gtk_ut.h"#include "../gui_gtk/gtk_base.h"Functions | |
| int | GUI_edi_getModif (MemObj *mo) |
| long | GUI_edi_getEof (MemObj *mo) |
| long | GUI_edi_getLnMax (MemObj *mo) |
| int | GUI_ed1_cb2 (void *parent, void *iter, void *mark, MemObj mo) |
| int | GUI_ed1_cb1 (void *parent, void *event, MemObj mo) |
| MemObj | GUI_edi__ (MemObj *o_par, void *funcnam, int mode, char *opts) |
| int | GUI_edi_InsFile (MemObj *mo, char *fnam) |
| int | GUI_edi_Insert (MemObj *mo, long cpos, char *txbuf, long txlen) |
| int | GUI_edi_Write (MemObj *mo, char *txbuf, long *txlen, long maxlen) |
| int | GUI_edi_Read (char *txbuf, long *txlen, long p1, long p2, MemObj *mo) |
| long | GUI_edi_RdLn (char *sOut, int sSiz, long lNr, MemObj *mo) |
| int | GUI_edi_Rd2it (char *txbuf, long txlen, GtkTextIter *it1, GtkTextIter *it2) |
| char | GUI_edi_RdChr (MemObj *mo, int offset) |
| long | GUI_edi_getCpos (MemObj *mo) |
| int | GUI_edi_setCpos (MemObj *mo, long cpos) |
| long | GUI_edi_getLsta (MemObj *mo, long lNr) |
| long | GUI_edi_getLnr (MemObj *mo) |
| int | GUI_edi_setLnr (MemObj *mo, long lNr) |
| int | GUI_edi_scroll_s (MemObj *mo) |
| void | GUI_edi_Focus (MemObj *mo) |
| int | GUI_edi_sel__ (MemObj *mo, long von, long bis) |
| int | GUI_edi_sel_get (long *p1, long *p2, MemObj *mo) |
| int | GUI_edi_sel_wrf (MemObj *mo, char *fnam) |
| int | GUI_edi_sel_ln (MemObj *mo, long lNr) |
| int | GUI_edi_sel_del (MemObj *mo) |
| int | GUI_edi_del (MemObj *mo, long von, long bis) |
| int | GUI_ed1_decode (MemObj *mo) |
Variables | |
| static MemObj | wEd |
| static GtkWidget * | GUI_ed1_view |
| static GtkTextBuffer * | GUI_ed1_buff |
| static Obj_gui1 * | GUI_ed1_ActObj |
| static long | GUI_ed1_cPos |
| static char * | GUI_ed1_lcSet |
===================================================== Liste_Funktionen_Beginn: GUI_edi__ create editor-window GUI_edi_Insert insert text GUI_edi_InsFile insert file at curPos, make text selected GUI_edi_Write write memSpc -> editor GUI_edi_Read get text between 2 positions GUI_edi_RdChr get char near charPos GUI_edi_RdLn get line (copy) GUI_edi_getLnMax get total-lines-nr GUI_edi_getEof get FileSize (total-chars-nr, EOF-Position) GUI_edi_del delete text between 2 positions GUI_edi_getLnr get LineNr of act.Curpos GUI_edi_setLnr . GUI_edi_getCpos get Cursorposition as charOffset GUI_edi_setCpos set to curPos and view text at curPos GUI_edi_getLsta get startPos of Line GUI_edi_sel__ select from-charOffset to-charOffset GUI_edi_sel_get GUI_edi_sel_wrf write selected -> file GUI_edi_sel_ln select line GUI_edi_sel_del delete selected text GUI_edi_scroll_s scroll to act.charOffset (= selected) GUI_edi_Focus set focus to EditWindow GUI_edi_getModif get if buffer is modfied GUI_ed1_cb1 INTERNAL GUI_ed1_cb2 INTERNAL GUI_ed1_decode INTERNAL Liste_Funktionen_Ende: =====================================================
| int GUI_edi_getModif | ( | MemObj * | mo | ) |
GUI_edi_getModif get if buffer is modfied if buffer is modied: save; this call resets the state. returns 1=modified; 0=unmodified.
| long GUI_edi_getEof | ( | MemObj * | mo | ) |
GUI_edi_getEof get total nr of chars (not bytes)
gtk_text_buffer_get_char_count get nr of chars, not nr of bytes !
| long GUI_edi_getLnMax | ( | MemObj * | mo | ) |
GUI_edi_getLnMax get total-lines-nr
| int GUI_ed1_cb2 | ( | void * | parent, | |
| void * | iter, | |||
| void * | mark, | |||
| MemObj | mo | |||
| ) |
INTERNAL 'set-mark'-callback
| int GUI_ed1_cb1 | ( | void * | parent, | |
| void * | event, | |||
| MemObj | mo | |||
| ) |
INTERNAL
returns 0=event TYP_EventEnter|TYP_EventRelease
1=device TYP_DeviceKeyb
3=key
4=modfier
| MemObj GUI_edi__ | ( | MemObj * | o_par, | |
| void * | funcnam, | |||
| int | mode, | |||
| char * | opts | |||
| ) |
o_par parentBox
funcnam callback-function for Keypress & FocusIn-Events (none: NULL)
mode 0 = do not wrap lines; 1=yes, wrap lines
prototyp funcnam:
int funcnam (MemObj *mo, void **data);
// data=table of 3 pointers;
GUI_DATA_EVENT =*(int*)data[0]=TYP_EventEnter
GUI_DATA_L1 =*(long*)data[1]=act.cursorPosition
GUI_DATA_L2 =*(long*)data[2]=act.lineNr.
GUI_DATA_EVENT =*(int*)data[0]=TYP_EventRelease
GUI_DATA_I1 =*(int*)data[1]=keyvalue; eg 'a'
GUI_DATA_I2 =*(int*)data[2]=state of modifierkeys;
&1=shift; &4=ctrl; &8=alt.
GUI_OBJ_TYP(mo) = TYP_GUI_Editor
Example without callback-function:
ed1 = GUI_edi__ (&box1, NULL, 0, 0);
Example with callback-function:
ed2 = GUI_edi__ (&box1, ed1_cb, 50, 40);
..
int ed1_cb (MemObj *mo, void **data) {
printf(" event=%d typ=%d\n",GUI_DATA_EVENT,GUI_OBJ_TYP(mo));
printf(" key=%d modi=%d\n",GUI_DATA_I1,GUI_DATA_I2);
}
| int GUI_edi_InsFile | ( | MemObj * | mo, | |
| char * | fnam | |||
| ) |
GUI_edi_InsFile insert file at curPos, make text selected
| int GUI_edi_Insert | ( | MemObj * | mo, | |
| long | cpos, | |||
| char * | txbuf, | |||
| long | txlen | |||
| ) |
text einfuegen
cpos zB von GUI_edi_getCpos
| int GUI_edi_Write | ( | MemObj * | mo, | |
| char * | txbuf, | |||
| long * | txlen, | |||
| long | maxlen | |||
| ) |
das gesamte Editfenster neu schreiben (txbuf(=mem) -> Window).
ATTENTION: GUI_edi_Write can modify txbuf (changes into UTF8)
| int GUI_edi_Read | ( | char * | txbuf, | |
| long * | txlen, | |||
| long | p1, | |||
| long | p2, | |||
| MemObj * | mo | |||
| ) |
get text between 2 positions p1, p2 character-offset, not byte offsets ! get whole window with: p1=0L, p2=-1L Input: txlen size of txbuf
| long GUI_edi_RdLn | ( | char * | sOut, | |
| int | sSiz, | |||
| long | lNr, | |||
| MemObj * | mo | |||
| ) |
GUI_edi_RdLn get line (copy)
| int GUI_edi_Rd2it | ( | char * | txbuf, | |
| long | txlen, | |||
| GtkTextIter * | it1, | |||
| GtkTextIter * | it2 | |||
| ) |
get text between 2 iters INTERNAL p1, p2 character-offset, not byte offsets ! get whole window with: p1=0L, p2=-1L Input: txlen size of txbuf
| char GUI_edi_RdChr | ( | MemObj * | mo, | |
| int | offset | |||
| ) |
read char near cursor; offset 0 = char right of cursor offset -1 = char left of cursor returns '\0' for out-of-file-positions. returns -1 for a multibyte-character
| long GUI_edi_getCpos | ( | MemObj * | mo | ) |
get cursorposition as offset from start-of-file. 0=startpos; Linedelimiters '\n' is one char. cpos -> Zeilennummer: UTF_GetLnrPos
| int GUI_edi_setCpos | ( | MemObj * | mo, | |
| long | cpos | |||
| ) |
set to curPos and view text at curPos
cpos -1L is end of file
| long GUI_edi_getLsta | ( | MemObj * | mo, | |
| long | lNr | |||
| ) |
get startPos of Line; -1=line does not exist.
| long GUI_edi_getLnr | ( | MemObj * | mo | ) |
GUI_edi_getLnr get LineNr of act.Curpos First line = 1 !
| int GUI_edi_setLnr | ( | MemObj * | mo, | |
| long | lNr | |||
| ) |
| int GUI_edi_scroll_s | ( | MemObj * | mo | ) |
scroll to active insert-mark makes unselect ?
| void GUI_edi_Focus | ( | MemObj * | mo | ) |
den Focus auf EditWindow
| int GUI_edi_sel__ | ( | MemObj * | mo, | |
| long | von, | |||
| long | bis | |||
| ) |
select_region from-curPos to-curPos
if(from-curPos < 0) - unsect all !
| int GUI_edi_sel_get | ( | long * | p1, | |
| long * | p2, | |||
| MemObj * | mo | |||
| ) |
write selected -> file
txlen input = size of txbuf; Output = nr of characters read
| int GUI_edi_sel_wrf | ( | MemObj * | mo, | |
| char * | fnam | |||
| ) |
GUI_edi_sel_wrf write selected -> file returns nr of chars
| int GUI_edi_sel_ln | ( | MemObj * | mo, | |
| long | lNr | |||
| ) |
GUI_edi_sel_ln select Line, set Curpos to Line. Erste Zeile ist 1 rc -1: lNr does not exist ACHTUNG: die ZeilenStart/Endposition wird aus dem mem gelesen !!!!
| int GUI_edi_sel_del | ( | MemObj * | mo | ) |
GUI_edi_sel_del delete selected text
| int GUI_edi_del | ( | MemObj * | mo, | |
| long | von, | |||
| long | bis | |||
| ) |
GUI_edi_del delete from-curPos to-curPos
| int GUI_ed1_decode | ( | MemObj * | mo | ) |
INTERNAL
set GUI_tree1_tree, GUI_tree1_view, GUI_tree1_model and GUI_tree1_store
MemObj wEd [static] |
GtkWidget* GUI_ed1_view [static] |
GtkTextBuffer* GUI_ed1_buff [static] |
Obj_gui1* GUI_ed1_ActObj [static] |
long GUI_ed1_cPos [static] |
char* GUI_ed1_lcSet [static] |
1.6.3