Commit fbebfd7e authored by Claes Sjofors's avatar Claes Sjofors

Ge protected annotations added

parent 5059d721
......@@ -151,6 +151,7 @@ menu Values
subgraph ValueReliefUp pwr_exe:pwr_valuereliefup.pwsg 51
subgraph ValueInputReliefDown pwr_exe:pwr_valueinputreliefdown.pwsg 51
subgraph ValueInputReliefUp pwr_exe:pwr_valueinputreliefup.pwsg 51
subgraph PasswordInput pwr_exe:pwr_passwordinput.pwsg 51
}
menu Pushbuttons
{
......
0! DefaultWidth 0
0! DefaultHeight 0
199
!/**
! ValueInputMedium
! Group Values
!
! <image> pwr_valuemedium_gs.gif
!
! <h1>Description
! Value input field, medium sized with left aligned text.
!
! <h1>Default dynamics
! Value <link>GeDynValue, ,$pwr_lang/man_geref.dat
! ValueInput <link>GeDynValueInput, ,$pwr_lang/man_geref.dat
!
!*/
1
100 20
135 20
101 20
102 -89
103 -60
104 3.711
136 3.711
105 100
106 -16
107 -11
108 3
109 0
110 1
111 0
116 0
117 0
118 134
119 112
120 0
121 Claes context
122 0
126 1
127 1
128 1
129 0.3
130 1.5
131 0.8
132 3
133 2
137 4510
138 3
139 2
140 2
134
22
2200 0
2201 2
2202 pwr_passwordinput
2203 300
2205 0
2204
2206 0
2207
2208
2209 0
2210 0
2211 0
2212 0
2213 4
2214
pwrp_pop:
pwrp_exe:
ssab_exe:
pwr_exe:
2215 1024
2246 0
2236 4096
2247 0
2216 0
2221 0
2237 0
2238 0
2239 0
2240 0
2241 0
2242 0
2217 0
2218 0
2219 1
2220
2230 0
2231 0
2222
2223 1
2224 0.5
2232 0.5
2225 0.5
2226 0
2227
2228 0
2229 0
2233 1
2234 1
2235 0
2243 0
2248 0
2245 0
2244
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
123
2
99
124
2
99
125
2
19
1904 O0
1900 3
1901 0
1902 1
1903 0
1908 0
1909 41
1910 41
1911 1
1915 0
1913 10
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 2
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 3
701 1
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
23
2304 O1
2300 0.65
2301 0.35
2302 0.8
2303 0.5
2305
9
900 3
901 304
904 0
902 A1
903
7
700 0.35
701 0.8
99
99
2306
5
500 2
501 1
504 1
505 0
502
7
700 0.35
701 0.5
99
503
7
700 0.65
701 0.8
99
99
2307
13
1300 1
1301 304
1306 0
1302 3
1305 1
1303
7
700 1
701 1.35
99
1304 0
1307 0
1308 1
99
2308
28
2800 1
2801 0
2802 -0.65
2803 0
2804 1
2805 -0.55
2806 0
99
2309 2
99
99
99
123
2
3
300 pwr_passwordinput
301
2
19
1904 O0
1900 3
1901 0
1902 1
1903 0
1908 0
1909 41
1910 41
1911 1
1915 0
1913 10
1916 2
1914 0
1918 0
1919 0
1920 0
1917 0
1921 0
1922 2
1923 0
1907 0
1906
1905
5
500 0
501 1
504 1
505 1
502
7
700 0
701 0
99
503
7
700 3
701 1
99
99
1912
28
2800 1
2801 0
2802 0
2803 0
2804 1
2805 0
2806 0
99
99
29
2907
13
1300 1
1301 304
1306 0
1302 3
1305 1
1303
7
700 1
701 1.35
99
1304 0
1307 0
1308 1
99
2908
28
2800 1
2801 0
2802 -0.65
2803 0
2804 1
2805 -0.55
2806 0
99
2901 2
99
99
302 0
305 0
306
307
304 0
303
308 1024
330 0
321 4096
331 0
309 0
313 0
322 0
323 0
324 0
325 0
326 0
327 0
310 0
311 0
312
314
315 1
316 1
317 0
318 0
319 0
320 0
328 0
332 0
329
1
100 1
105 0
101 1
106 0
102 65532
103 0
99
99
99
99
......@@ -1280,6 +1280,7 @@ typedef enum {
glow_eSave_Annot_display_level = 1305,
glow_eSave_Annot_color_drawtype = 1306,
glow_eSave_Annot_font = 1307,
glow_eSave_Annot_protect = 1308,
glow_eSave_Arrow_arrow_width = 1400,
glow_eSave_Arrow_arrow_length = 1401,
glow_eSave_Arrow_draw_type = 1402,
......
......@@ -58,6 +58,7 @@ void GlowAnnot::save( ofstream& fp, glow_eSaveMode mode)
p.save( fp, mode);
fp << int(glow_eSave_Annot_annot_type) << FSPACE << int(annot_type) << endl;
fp << int(glow_eSave_Annot_font) << FSPACE << int(font) << endl;
fp << int(glow_eSave_Annot_protect) << FSPACE << protect << endl;
fp << int(glow_eSave_End) << endl;
}
......@@ -89,6 +90,7 @@ void GlowAnnot::open( ifstream& fp)
annot_type = (glow_eAnnotType)tmp; break;
case glow_eSave_Annot_font: fp >> tmp;
font = (glow_eFont)tmp; break;
case glow_eSave_Annot_protect: fp >> protect; break;
case glow_eSave_End: end_found = 1; break;
default:
cout << "GlowAnnot:open syntax error" << endl;
......
......@@ -56,7 +56,7 @@ class GlowAnnot : public GlowArrayElem {
ctx(glow_ctx), number(annot_num), p(glow_ctx,x,y), draw_type(d_type),
text_size(t_size), annot_type(a_type), relative_pos(rel_pos),
display_level(display_lev), color_drawtype(color_d_type),
font(glow_eFont_Helvetica) {};
font(glow_eFont_Helvetica), protect(0) {};
void save( ofstream& fp, glow_eSaveMode mode);
void open( ifstream& fp);
void traverse( int x, int y) { p.traverse( x, y);}
......@@ -71,6 +71,7 @@ class GlowAnnot : public GlowArrayElem {
glow_mDisplayLevel display_level;
glow_eDrawType color_drawtype;
glow_eFont font;
int protect;
};
void glow_measure_annot_text( GrowCtx *ctx, char *text, glow_eDrawType draw_type,
......
......@@ -47,6 +47,7 @@
#include "glow_node.h"
#include "glow_grownode.h"
static char stars[] = "*******************************************************************************";
void GrowAnnot::save( ofstream& fp, glow_eSaveMode mode)
{
......@@ -152,19 +153,28 @@ void GrowAnnot::draw( GlowWind *w, GlowTransform *t, int highlight, int hot, voi
switch ( annot_type) {
case glow_eAnnotType_OneLine: {
int width, height, descent;
char *textp;
int text_len;
color = ((GrowCtx *)ctx)->get_drawtype( color_drawtype, glow_eDrawType_LineHighlight,
highlight, (GrowNode *)colornode, 2);
if ( protect) {
text_len = min(strlen(((GlowNode *) node)->annotv[number]), sizeof(stars)-2);
textp = &stars[sizeof(stars) - 1 - text_len];
}
else {
textp = ((GlowNode *) node)->annotv[number];
text_len = strlen(((GlowNode *) node)->annotv[number]);
}
if ( ((rot < 45 || rot >= 315) &&
( ((GlowNode *) node)->annotv_inputmode[number] &&
((GrowNode *) node)->input_selected)) ||
( !(rot < 45 || rot >= 315)) ||
adjustment == glow_eAdjustment_Right ||
adjustment == glow_eAdjustment_Center)
ctx->gdraw->get_text_extent( ((GlowNode *) node)->annotv[number],
strlen(((GlowNode *) node)->annotv[number]),
ctx->gdraw->get_text_extent( textp, text_len,
ldraw_type, idx, lfont,
&width, &height, &descent, tsize, 0);
......@@ -222,13 +232,13 @@ void GrowAnnot::draw( GlowWind *w, GlowTransform *t, int highlight, int hot, voi
}
ctx->gdraw->text( w, x1, y1,
((GlowNode *) node)->annotv[number],
strlen(((GlowNode *) node)->annotv[number]), ldraw_type, color, idx,
textp, text_len,
ldraw_type, color, idx,
highlight, 0, lfont, tsize, rot);
if ( ((GlowNode *) node)->annotv_inputmode[number])
ctx->gdraw->text_cursor( w, x1, y1,
((GlowNode *) node)->annotv[number],
strlen(((GlowNode *) node)->annotv[number]),
textp, text_len,
ldraw_type, color, idx, highlight,
((GrowNode *)node)->input_position, lfont, tsize);
break;
......@@ -316,6 +326,17 @@ void GrowAnnot::erase( GlowWind *w, GlowTransform *t, int hot, void *node)
switch ( annot_type) {
case glow_eAnnotType_OneLine: {
int width, height, descent;
char *textp;
int text_len;
if ( protect) {
text_len = min(strlen(((GlowNode *) node)->annotv[number]), sizeof(stars)-2);
textp = &stars[sizeof(stars) - 1 - text_len];
}
else {
textp = ((GlowNode *) node)->annotv[number];
text_len = strlen(((GlowNode *) node)->annotv[number]);
}
if ( ((rot < 45 || rot >= 315) &&
( ((GlowNode *) node)->annotv_inputmode[number] &&
......@@ -323,8 +344,8 @@ void GrowAnnot::erase( GlowWind *w, GlowTransform *t, int hot, void *node)
( !(rot < 45 || rot >= 315)) ||
adjustment == glow_eAdjustment_Right ||
adjustment == glow_eAdjustment_Center)
ctx->gdraw->get_text_extent( ((GlowNode *) node)->annotv[number],
strlen(((GlowNode *) node)->annotv[number]),
ctx->gdraw->get_text_extent( textp,
text_len,
ldraw_type, idx, lfont,
&width, &height, &descent, tsize, 0);
......@@ -378,8 +399,8 @@ void GrowAnnot::erase( GlowWind *w, GlowTransform *t, int hot, void *node)
}
ctx->gdraw->text_erase( w, x1, y1,
((GlowNode *) node)->annotv[number],
strlen(((GlowNode *) node)->annotv[number]), ldraw_type, idx, 0, lfont,
textp, text_len,
ldraw_type, idx, 0, lfont,
tsize, rot);
break;
}
......@@ -463,11 +484,21 @@ void GrowAnnot::erase_background( GlowWind *w, GlowTransform *t, int hot, void *
// strlen(((GlowNode *) node)->annotv[number]), background, idx,
// 0, 0);
}
else
ctx->gdraw->text_erase( w, x1, y1,
((GlowNode *) node)->annotv[number],
strlen(((GlowNode *) node)->annotv[number]), ldraw_type, idx, 0,
lfont, tsize, 0);
else {
if ( !protect)
ctx->gdraw->text_erase( w, x1, y1,
((GlowNode *) node)->annotv[number],
strlen(((GlowNode *) node)->annotv[number]), ldraw_type, idx, 0,
lfont, tsize, 0);
else {
int text_len = min(strlen(((GlowNode *) node)->annotv[number]), sizeof(stars)-2);
ctx->gdraw->text_erase( w, x1, y1,
&stars[sizeof(stars) - 1 - text_len],
text_len,
ldraw_type, idx, 0,
lfont, tsize, 0);
}
}
break;
}
case glow_eAnnotType_MultiLine: {
......
......@@ -1644,6 +1644,11 @@ int grow_GetObjectAttrInfo( grow_tObject object, char *transtab,
attrinfo[i].type = glow_eType_AnnotType;
attrinfo[i++].size = sizeof( op->annot_type);
strcpy( attrinfo[i].name, "Protected");
attrinfo[i].value_p = &op->protect;
attrinfo[i].type = glow_eType_Boolean;
attrinfo[i++].size = sizeof( op->protect);
break;
}
case glow_eObjectType_GrowText:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment