1
0
mirror of https://github.com/gryf/wmaker.git synced 2026-02-02 14:15:46 +01:00

including parser in wtext.c

This commit is contained in:
nwanua
2000-09-20 04:26:31 +00:00
parent a3cd52ba05
commit ac4997e739
3 changed files with 757 additions and 190 deletions

View File

@@ -388,12 +388,13 @@ typedef struct WMInputPanel {
/* WMRuler: */
typedef struct {
unsigned int *tabs; /* a growable array of tabstops */
unsigned short ntabstops:4; /* how many there are */
unsigned short left:15; /* left margin marker */
unsigned short right:15; /* right margin marker */
unsigned short first:15; /* indentation marker for first line only */
unsigned short body:15; /* body indentation marker */
unsigned short *tabs; /* a growable array of tabstops */
unsigned short ntabstops; /* how many there are */
unsigned short left; /* left margin marker */
unsigned short right; /* right margin marker */
unsigned short first; /* indentation marker for first line only */
unsigned short body; /* body indentation marker */
unsigned short retainCount;
} WMRulerMargins;
/* All indentation and tab markers are _relative_ to the left margin marker */
@@ -789,6 +790,8 @@ void WMMapWidget(WMWidget *w);
void WMRaiseWidget(WMWidget *w);
void WMLowerWidget(WMWidget *w);
void WMMoveWidget(WMWidget *w, int x, int y);
void WMResizeWidget(WMWidget *w, unsigned int width, unsigned int height);
@@ -832,6 +835,8 @@ extern char *WMViewSizeDidChangeNotification;
extern char *WMViewRealizedNotification;
extern char *WMFontPanelDidChangeNotification;
/* ....................................................................... */
@@ -1386,10 +1391,13 @@ int WMGetSplitViewDividerThickness(WMSplitView *sPtr);
WMRuler *WMCreateRuler (WMWidget *parent);
WMRulerMargins WMGetRulerMargins(WMRuler *rPtr);
WMRulerMargins *WMGetRulerMargins(WMRuler *rPtr);
void WMSetRulerMargins(WMRuler *rPtr, WMRulerMargins margins);
Bool WMIsMarginEqualToMargin(WMRulerMargins *aMargin,
WMRulerMargins *anotherMargin);
int WMGetGrabbedRulerMargin(WMRuler *rPtr);
int WMGetReleasedRulerMargin(WMRuler *rPtr);
@@ -1464,35 +1472,36 @@ WMBag * WMGetTextStreamIntoBag(WMText *tPtr);
/* destroy the bag */
WMBag * WMGetTextSelectedIntoBag(WMText *tPtr);
void *WMCreateTextBlockWithObject(WMWidget *w, char *description,
WMColor *color, unsigned short first, unsigned short reserved);
void *WMCreateTextBlockWithPixmap(WMPixmap *p, char *description,
WMColor *color, unsigned short first, unsigned short reserved);
void *WMCreateTextBlockWithText(char *text, WMFont *font,
WMColor *color, unsigned short first, unsigned short length);
void WMSetTextBlockProperties(void *vtb, unsigned int first,
unsigned int kanji, unsigned int underlined, int script,
WMRulerMargins margins);
void WMGetTextBlockProperties(void *vtb, unsigned int *first,
unsigned int *kanji, unsigned int *underlined, int *script,
WMRulerMargins *margins);
void WMSetTextSelectionColor(WMText *tPtr, WMColor *color);
void WMSetTextSelectionFont(WMText *tPtr, WMFont *font);
void WMSetTextAlignment(WMText *tPtr, WMAlignment alignment);
/* parser related stuff... see how it can be done in testtext.c */
/* parser related stuff... use only if implementing a new parser */
void WMSetTextParser(WMText *tPtr, WMAction *parser);
void WMSetTextWriter(WMText *tPtr, WMAction *writer);
void *WMCreateTextBlockWithObject(WMText *tPtr, WMWidget *w, char *description,
WMColor *color, unsigned short first, unsigned short reserved);
void *WMCreateTextBlockWithPixmap(WMText *tPtr, WMPixmap *p, char *description,
WMColor *color, unsigned short first, unsigned short reserved);
void *WMCreateTextBlockWithText(WMText *tPtr, char *text, WMFont *font,
WMColor *color, unsigned short first, unsigned short length);
void WMSetTextBlockProperties(WMText *tPtr, void *vtb, unsigned int first,
unsigned int kanji, unsigned int underlined, int script,
WMRulerMargins *margins);
/* do NOT free the margins */
void WMGetTextBlockProperties(WMText *tPtr, void *vtb, unsigned int *first,
unsigned int *kanji, unsigned int *underlined, int *script,
WMRulerMargins *margins);
int WMGetTextInsertType(WMText *tPtr);
int WMGetTextBlocks(WMText *tPtr);

View File

@@ -487,28 +487,47 @@ void WMSetRulerMargins(WMRuler * rPtr, WMRulerMargins margins)
}
WMRulerMargins
WMRulerMargins *
WMGetRulerMargins(WMRuler * rPtr)
{
WMRulerMargins margins;
WMRulerMargins *margins = wmalloc(sizeof(WMRulerMargins));
if (!rPtr) {
margins.first = margins.body = margins.left = 0;
margins.right = 100;
margins->first = margins->body = margins->left = 0;
margins->right = 100;
return margins;
}
margins.left = rPtr->margins.left - rPtr->offset;
margins.right = rPtr->margins.right - rPtr->offset;
margins.first = rPtr->margins.first - rPtr->offset;
margins.body = rPtr->margins.body - rPtr->offset;
margins->left = rPtr->margins.left - rPtr->offset;
margins->right = rPtr->margins.right - rPtr->offset;
margins->first = rPtr->margins.first - rPtr->offset;
margins->body = rPtr->margins.body - rPtr->offset;
/*for */
margins.tabs = rPtr->margins.tabs;
margins->tabs = rPtr->margins.tabs;
return rPtr->margins;
}
Bool
WMIsMarginEqualToMargin(WMRulerMargins *aMargin, WMRulerMargins *anotherMargin)
{
if(aMargin == anotherMargin)
return True;
else if(!aMargin || !anotherMargin)
return False;
if(aMargin->left != anotherMargin->left)
return False;
if(aMargin->first != anotherMargin->first)
return False;
if(aMargin->body != anotherMargin->body)
return False;
if(aMargin->right != anotherMargin->right)
return False;
return True;
}
void WMSetRulerOffset(WMRuler * rPtr, int pixels)
{

File diff suppressed because it is too large Load Diff