Refactor: Renamed text tool methods (suggestions and docs) for clarity and consistency.

This commit is contained in:
2008-07-23 21:28:48 +00:00
parent 3b70337f7f
commit d2013570a0
5 changed files with 100 additions and 100 deletions

View File

@@ -62,26 +62,27 @@ typedef struct SuggList {
SuggItem *selected;
} SuggList;
/* Free all suggestion related memory */
void free_suggestions();
/* Free all text tool memory */
void free_texttools();
/* Used to identify which Text object the current tools should appear against */
void suggest_set_active(Text *text);
void suggest_clear_active();
short suggest_is_active(Text *text);
void texttool_text_set_active(Text *text);
void texttool_text_clear();
short texttool_text_is_active(Text *text);
void suggest_add(const char *name, char type);
void suggest_prefix(const char *prefix);
void suggest_clear_list();
SuggItem *suggest_first();
SuggItem *suggest_last();
/* Suggestions */
void texttool_suggest_add(const char *name, char type);
void texttool_suggest_prefix(const char *prefix);
void texttool_suggest_clear();
SuggItem *texttool_suggest_first();
SuggItem *texttool_suggest_last();
void texttool_suggest_select(SuggItem *sel);
SuggItem *texttool_suggest_selected();
void suggest_set_selected(SuggItem *sel);
SuggItem *suggest_get_selected();
void suggest_documentation(const char *docs);
char *suggest_get_docs();
void suggest_clear_docs();
/* Documentation */
void texttool_docs_show(const char *docs);
char *texttool_docs_get();
void texttool_docs_clear();
#ifdef __cplusplus
}

View File

@@ -41,13 +41,12 @@
/* Static definitions */
/**********************/
static Text *activeToolText = NULL;
static SuggList suggestions = {NULL, NULL, NULL, NULL, NULL};
static Text *suggText = NULL;
static SuggItem *lastInsert = NULL;
static char *documentation = NULL;
static int doc_lines = 0;
static int suggest_cmp(const char *first, const char *second, int len) {
static int txttl_cmp(const char *first, const char *second, int len) {
int cmp, i;
for (cmp=0, i=0; i<len; i++) {
if (cmp= toupper(first[i])-toupper(second[i])) {
@@ -57,7 +56,7 @@ static int suggest_cmp(const char *first, const char *second, int len) {
return cmp;
}
static void sugg_free() {
static void txttl_free_suggest() {
SuggItem *item, *prev;
for (item = suggestions.last; item; item=prev) {
prev = item->prev;
@@ -68,7 +67,7 @@ static void sugg_free() {
suggestions.selected = NULL;
}
static void docs_free() {
static void txttl_free_docs() {
if (documentation) {
MEM_freeN(documentation);
documentation = NULL;
@@ -79,31 +78,31 @@ static void docs_free() {
/* General tool functions */
/**************************/
void free_suggestions() {
sugg_free();
docs_free();
void free_texttools() {
txttl_free_suggest();
txttl_free_docs();
}
void suggest_set_active(Text *text) {
if (suggText == text) return;
suggest_clear_active();
suggText = text;
void texttool_text_set_active(Text *text) {
if (activeToolText == text) return;
texttool_text_clear();
activeToolText = text;
}
void suggest_clear_active() {
free_suggestions();
suggText = NULL;
void texttool_text_clear() {
free_texttools();
activeToolText = NULL;
}
short suggest_is_active(Text *text) {
return suggText==text ? 1 : 0;
short texttool_text_is_active(Text *text) {
return activeToolText==text ? 1 : 0;
}
/***************************/
/* Suggestion list methods */
/***************************/
void suggest_add(const char *name, char type) {
void texttool_suggest_add(const char *name, char type) {
SuggItem *newitem, *item;
int len, cmp;
@@ -126,7 +125,7 @@ void suggest_add(const char *name, char type) {
} else {
cmp = -1;
for (item=suggestions.last; item; item=item->prev) {
cmp = suggest_cmp(name, item->name, len);
cmp = txttl_cmp(name, item->name, len);
/* Newitem comes after this item, insert here */
if (cmp >= 0) {
@@ -152,7 +151,7 @@ void suggest_add(const char *name, char type) {
suggestions.firstmatch = suggestions.lastmatch = suggestions.selected = NULL;
}
void suggest_prefix(const char *prefix) {
void texttool_suggest_prefix(const char *prefix) {
SuggItem *match, *first, *last;
int cmp, len = strlen(prefix);
@@ -165,7 +164,7 @@ void suggest_prefix(const char *prefix) {
first = last = NULL;
for (match=suggestions.first; match; match=match->next) {
cmp = suggest_cmp(prefix, match->name, len);
cmp = txttl_cmp(prefix, match->name, len);
if (cmp==0) {
if (!first)
first = match;
@@ -188,31 +187,31 @@ void suggest_prefix(const char *prefix) {
}
}
void suggest_clear_list() {
sugg_free();
void texttool_suggest_clear() {
txttl_free_suggest();
}
SuggItem *suggest_first() {
SuggItem *texttool_suggest_first() {
return suggestions.firstmatch;
}
SuggItem *suggest_last() {
SuggItem *texttool_suggest_last() {
return suggestions.lastmatch;
}
SuggItem *suggest_get_selected() {
return suggestions.selected;
void texttool_suggest_select(SuggItem *sel) {
suggestions.selected = sel;
}
void suggest_set_selected(SuggItem *sel) {
suggestions.selected = sel;
SuggItem *texttool_suggest_selected() {
return suggestions.selected;
}
/*************************/
/* Documentation methods */
/*************************/
void suggest_documentation(const char *docs) {
void texttool_docs_show(const char *docs) {
int len;
if (!docs) return;
@@ -236,10 +235,10 @@ void suggest_documentation(const char *docs) {
documentation[len] = '\0';
}
char *suggest_get_docs() {
char *texttool_docs_get() {
return documentation;
}
void suggest_clear_docs() {
docs_free();
void texttool_docs_clear() {
txttl_free_docs();
}

View File

@@ -598,8 +598,8 @@ static PyObject *Text_suggest( BPy_Text * self, PyObject * args )
return EXPP_ReturnPyObjError(PyExc_RuntimeError,
"Active text area has no Text object");
suggest_clear_list();
suggest_set_active(st->text);
texttool_suggest_clear();
texttool_text_set_active(st->text);
list_len = PyList_Size(list);
for (i = 0; i < list_len; i++) {
@@ -625,11 +625,11 @@ static PyObject *Text_suggest( BPy_Text * self, PyObject * args )
return EXPP_ReturnPyObjError(PyExc_AttributeError,
"names must be non-empty and types in ['m', 'v', 'f', 'k', '?']" );
suggest_add(name, type);
texttool_suggest_add(name, type);
}
if (!prefix)
prefix = "";
suggest_prefix(prefix);
texttool_suggest_prefix(prefix);
scrarea_queue_redraw(curarea);
Py_RETURN_NONE;
@@ -657,8 +657,8 @@ static PyObject *Text_showDocs( BPy_Text * self, PyObject * args )
return EXPP_ReturnPyObjError(PyExc_RuntimeError,
"Active text area has no Text object");
suggest_set_active(st->text);
suggest_documentation(docs);
texttool_text_set_active(st->text);
texttool_docs_show(docs);
scrarea_queue_redraw(curarea);
Py_RETURN_NONE;

View File

@@ -1029,11 +1029,11 @@ static int do_suggest_select(SpaceText *st)
int seli, tgti;
if (!st || !st->text) return 0;
if (!suggest_is_active(st->text)) return 0;
if (!texttool_text_is_active(st->text)) return 0;
first = suggest_first();
last = suggest_last();
sel = suggest_get_selected();
first = texttool_suggest_first();
last = texttool_suggest_last();
sel = texttool_suggest_selected();
if (!last || !first)
return 0;
@@ -1068,11 +1068,11 @@ static int do_suggest_select(SpaceText *st)
if (seli<tgti) {
for (i=seli; i<tgti && sel && sel!=last; i++, sel=sel->next);
if (sel)
suggest_set_selected(sel);
texttool_suggest_select(sel);
} else {
for (i=seli; i>tgti && sel && sel!=first; i--, sel=sel->prev);
if (sel)
suggest_set_selected(sel);
texttool_suggest_select(sel);
}
return 1;
}
@@ -1085,9 +1085,9 @@ void draw_documentation(SpaceText *st)
int boxw=0, boxh, l, x, y;
if (!st || !st->text) return;
if (!suggest_is_active(st->text)) return;
if (!texttool_text_is_active(st->text)) return;
docs = suggest_get_docs();
docs = texttool_docs_get();
if (!docs) return;
@@ -1100,7 +1100,7 @@ void draw_documentation(SpaceText *st)
} else {
x = spacetext_get_fontwidth(st)*(st->text->curc-st->left) + TXT_OFFSET - 4;
}
if (suggest_first()) {
if (texttool_suggest_first()) {
x += SUGG_LIST_WIDTH*spacetext_get_fontwidth(st) + 50;
}
y = curarea->winy - st->lheight*l - 2;
@@ -1155,14 +1155,14 @@ void draw_suggestion_list(SpaceText *st)
int w, boxw=0, boxh, i, l, x, y, b;
if (!st || !st->text) return;
if (!suggest_is_active(st->text)) return;
if (!texttool_text_is_active(st->text)) return;
first = suggest_first();
last = suggest_last();
first = texttool_suggest_first();
last = texttool_suggest_last();
if (!first || !last) return;
sel = suggest_get_selected();
sel = texttool_suggest_selected();
/* Count the visible lines to the cursor */
for (tmp=st->text->curl, l=-st->top; tmp; tmp=tmp->prev, l++);
@@ -1858,7 +1858,7 @@ static void get_suggest_prefix(Text *text) {
char *line, tmp[256];
if (!text) return;
if (!suggest_is_active(text)) return;
if (!texttool_text_is_active(text)) return;
line= text->curl->line;
for (i=text->curc-1; i>=0; i--)
@@ -1872,7 +1872,7 @@ static void get_suggest_prefix(Text *text) {
}
strncpy(tmp, line+i, len);
tmp[len]= '\0';
suggest_prefix(tmp);
texttool_suggest_prefix(tmp);
}
static void confirm_suggestion(Text *text, int skipleft) {
@@ -1881,9 +1881,9 @@ static void confirm_suggestion(Text *text, int skipleft) {
SuggItem *sel;
if (!text) return;
if (!suggest_is_active(text)) return;
if (!texttool_text_is_active(text)) return;
sel = suggest_get_selected();
sel = texttool_suggest_selected();
if (!sel) return;
line= text->curl->line;
@@ -1905,7 +1905,7 @@ static void confirm_suggestion(Text *text, int skipleft) {
for (i=0; i<skipleft; i++)
txt_move_right(text, 0);
suggest_clear_active();
texttool_text_clear();
}
void winqreadtextspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
@@ -1980,9 +1980,9 @@ void winqreadtextspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
return;
}
if (st->showsyntax && suggest_is_active(text)) {
if (suggest_first()) tools |= TOOL_SUGG_LIST;
if (suggest_get_docs()) tools |= TOOL_DOCUMENT;
if (st->showsyntax && texttool_text_is_active(text)) {
if (texttool_suggest_first()) tools |= TOOL_SUGG_LIST;
if (texttool_docs_get()) tools |= TOOL_DOCUMENT;
}
if (event==LEFTMOUSE) {
@@ -2454,11 +2454,11 @@ void winqreadtextspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
break;
case DOWNARROWKEY:
if (tools & TOOL_SUGG_LIST) {
SuggItem *sel = suggest_get_selected();
SuggItem *sel = texttool_suggest_selected();
if (!sel) {
suggest_set_selected(suggest_first());
} else if (sel!=suggest_last() && sel->next) {
suggest_set_selected(sel->next);
texttool_suggest_select(texttool_suggest_first());
} else if (sel!=texttool_suggest_last() && sel->next) {
texttool_suggest_select(sel->next);
}
tools_cancel &= ~TOOL_SUGG_LIST;
break;
@@ -2492,9 +2492,9 @@ void winqreadtextspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
break;
case UPARROWKEY:
if (tools & TOOL_SUGG_LIST) {
SuggItem *sel = suggest_get_selected();
if (sel && sel!=suggest_first() && sel->prev)
suggest_set_selected(sel->prev);
SuggItem *sel = texttool_suggest_selected();
if (sel && sel!=texttool_suggest_first() && sel->prev)
texttool_suggest_select(sel->prev);
tools_cancel &= ~TOOL_SUGG_LIST;
break;
}
@@ -2506,11 +2506,11 @@ void winqreadtextspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
case PAGEDOWNKEY:
if (tools & TOOL_SUGG_LIST) {
int i;
SuggItem *sel = suggest_get_selected();
SuggItem *sel = texttool_suggest_selected();
if (!sel)
sel = suggest_first();
for (i=0; i<SUGG_LIST_SIZE-1 && sel && sel!=suggest_last() && sel->next; i++, sel=sel->next)
suggest_set_selected(sel->next);
sel = texttool_suggest_first();
for (i=0; i<SUGG_LIST_SIZE-1 && sel && sel!=texttool_suggest_last() && sel->next; i++, sel=sel->next)
texttool_suggest_select(sel->next);
tools_cancel &= ~TOOL_SUGG_LIST;
break;
} else {
@@ -2521,9 +2521,9 @@ void winqreadtextspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
case PAGEUPKEY:
if (tools & TOOL_SUGG_LIST) {
int i;
SuggItem *sel = suggest_get_selected();
for (i=0; i<SUGG_LIST_SIZE-1 && sel && sel!=suggest_first() && sel->prev; i++, sel=sel->prev)
suggest_set_selected(sel->prev);
SuggItem *sel = texttool_suggest_selected();
for (i=0; i<SUGG_LIST_SIZE-1 && sel && sel!=texttool_suggest_first() && sel->prev; i++, sel=sel->prev)
texttool_suggest_select(sel->prev);
tools_cancel &= ~TOOL_SUGG_LIST;
break;
} else {
@@ -2543,9 +2543,9 @@ void winqreadtextspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
break;
case WHEELUPMOUSE:
if (tools & TOOL_SUGG_LIST) {
SuggItem *sel = suggest_get_selected();
if (sel && sel!=suggest_first() && sel->prev)
suggest_set_selected(sel->prev);
SuggItem *sel = texttool_suggest_selected();
if (sel && sel!=texttool_suggest_first() && sel->prev)
texttool_suggest_select(sel->prev);
tools_cancel &= ~TOOL_SUGG_LIST;
} else {
screen_skip(st, -U.wheellinescroll);
@@ -2555,11 +2555,11 @@ void winqreadtextspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
break;
case WHEELDOWNMOUSE:
if (tools & TOOL_SUGG_LIST) {
SuggItem *sel = suggest_get_selected();
SuggItem *sel = texttool_suggest_selected();
if (!sel) {
suggest_set_selected(suggest_first());
} else if (sel && sel!=suggest_last() && sel->next) {
suggest_set_selected(sel->next);
texttool_suggest_select(texttool_suggest_first());
} else if (sel && sel!=texttool_suggest_last() && sel->next) {
texttool_suggest_select(sel->next);
}
tools_cancel &= ~TOOL_SUGG_LIST;
} else {
@@ -2637,13 +2637,13 @@ void winqreadtextspace(ScrArea *sa, void *spacedata, BWinEvent *evt)
if (tools_update & TOOL_SUGG_LIST) {
get_suggest_prefix(text);
} else if (tools_cancel & TOOL_SUGG_LIST) {
suggest_clear_active();
texttool_suggest_clear();
}
do_draw= 1;
}
if (tools & TOOL_DOCUMENT) {
if (tools_cancel & TOOL_DOCUMENT) {
suggest_clear_docs();
texttool_docs_clear();
}
do_draw= 1;
}

View File

@@ -1101,7 +1101,7 @@ void exit_usiblender(void)
free_actcopybuf();
free_vertexpaint();
free_imagepaint();
free_suggestions();
free_texttools();
/* editnurb can remain to exist outside editmode */
freeNurblist(&editNurb);