summaryrefslogtreecommitdiff
path: root/app/bin/trknote.c
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2024-11-14 19:35:45 +0100
committerJörg Frings-Fürst <debian@jff-webhosting.net>2024-11-14 19:35:45 +0100
commitdf5520aa2dae5b3ce7abf8733dcdd152898af163 (patch)
tree00d3047bfb14f682bfb5a21010c731ed649bfed7 /app/bin/trknote.c
parentdf247efec654e512242e4f4f1b0212034f9e01fe (diff)
parentec3c0f6f6e7153fa797dc57a0e95779cbc63a23b (diff)
Merge branch 'release/debian/1_5.3.0GA-1'debian/1_5.3.0GA-1
Diffstat (limited to 'app/bin/trknote.c')
-rw-r--r--app/bin/trknote.c549
1 files changed, 218 insertions, 331 deletions
diff --git a/app/bin/trknote.c b/app/bin/trknote.c
index f27cf2e..a62c22d 100644
--- a/app/bin/trknote.c
+++ b/app/bin/trknote.c
@@ -17,34 +17,26 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#include <stdint.h>
-#include <string.h>
-#include <ctype.h>
-
+#include "common.h"
#include "cundo.h"
#include "custom.h"
#include "dynstring.h"
#include "fileio.h"
-#include "i18n.h"
#include "misc.h"
#include "note.h"
#include "param.h"
#include "track.h"
#include "include/utf8convert.h"
-#include "utility.h"
-
-extern BOOL_T inDescribeCmd;
-extern descData_t noteDesc[];
-static TRKTYP_T T_NOTE = -1;
+EXPORT TRKTYP_T T_NOTE = -1;
static wDrawBitMap_p note_bm, link_bm, document_bm;
typedef struct {
- char **xpm;
+ char ***xpm;
int OP;
char * shortName;
char * cmdName;
@@ -52,14 +44,14 @@ typedef struct {
long acclKey;
} trknoteData_t;
-#include "bitmaps/sticky-note-text.xpm"
-#include "bitmaps/sticky-note-chain.xpm"
-#include "bitmaps/sticky-note-clip.xpm"
+#include "bitmaps/sticky-note.xpm3"
+#include "bitmaps/sticky-link.xpm3"
+#include "bitmaps/sticky-doc.xpm3"
static trknoteData_t noteTypes[] = {
- { sticky_note_text_bits, OP_NOTETEXT, N_("Note"), N_("Comment"), "cmdTextNote", 0L },
- { sticky_note_chain_bits, OP_NOTELINK, N_("Link"), N_("Weblink"), "cmdLinkNote", 0L },
- { sticky_note_clip_bits, OP_NOTEFILE, N_("Document"), N_("Document"), "cmdFileNote", 0L },
+ { sticky_note_xpm3, OP_NOTETEXT, N_("Note"), N_("Text Note"), "cmdTextNote", ACCL_NOTE },
+ { sticky_link_xpm3, OP_NOTELINK, N_("Link"), N_("Weblink"), "cmdLinkNote", 0L },
+ { sticky_doc_xpm3, OP_NOTEFILE, N_("Document"), N_("Document"), "cmdFileNote", 0L },
};
static long curNoteType;
@@ -67,23 +59,23 @@ static long curNoteType;
static unsigned layerSave;
static coOrd posSave;
-#define NOTETYPESCOUNT (sizeof(noteTypes)/sizeof(trknoteData_t))
+#define NOTETYPESCOUNT COUNT(noteTypes)
/*****************************************************************************
* NOTE OBJECT
*/
-static track_p NewNote(wIndex_t index, coOrd p, enum noteCommands command )
+EXPORT track_p NewNote(wIndex_t index, coOrd p, enum noteCommands command )
{
- track_p t;
- struct extraDataNote * xx;
- t = NewTrack(index, T_NOTE, 0, sizeof *xx);
- xx = (struct extraDataNote *)GetTrkExtraData(t);
- xx->pos = p;
+ track_p t;
+ struct extraDataNote_t * xx;
+ t = NewTrack(index, T_NOTE, 0, sizeof *xx);
+ xx = GET_EXTRA_DATA( t, T_NOTE, extraDataNote_t );
+ xx->pos = p;
xx->op = command;
- SetBoundingBox(t, p, p);
- return t;
+ SetBoundingBox(t, p, p);
+ return t;
}
/**
@@ -96,26 +88,29 @@ static track_p NewNote(wIndex_t index, coOrd p, enum noteCommands command )
static void DrawNote(track_p t, drawCmd_p d, wDrawColor color)
{
- struct extraDataNote *xx = (struct extraDataNote *)GetTrkExtraData(t);
- coOrd p[4];
-
- if (d->scale >= 16) {
- return;
- }
- if ((d->options & DC_SIMPLE)) {
- //while the icon is moved, draw a square
+ struct extraDataNote_t *xx = GET_EXTRA_DATA( t, T_NOTE, extraDataNote_t );
+ coOrd p[5];
+ int type[5];
+
+
+ if ((d->options & DC_SIMPLE) || mainD.scale >= 16) {
+ //while the icon is moved, draw a square with a lopped off corner
//because CmdMove draws all selected object into tempSeg and
//tempSegDrawFuncs doesn't have a BitMap drawing func
DIST_T dist;
- dist = 0.1*mainD.scale;
+ dist = 0.8 + 0.1*(mainD.scale-16)/4;
p[0].x = p[1].x = xx->pos.x - dist;
- p[2].x = p[3].x = xx->pos.x + dist;
+ p[2].x = p[3].x = p[4].x = xx->pos.x + dist;
p[1].y = p[2].y = xx->pos.y - dist;
- p[3].y = p[0].y = xx->pos.y + dist;
- DrawLine(d, p[0], p[1], 0, color);
- DrawLine(d, p[1], p[2], 0, color);
- DrawLine(d, p[2], p[3], 0, color);
- DrawLine(d, p[3], p[0], 0, color);
+ p[3].y = p[4].y = p[0].y = xx->pos.y + dist;
+ p[3].y = p[3].y - (dist/2);
+ p[4].x = p[4].x - (dist/2);
+
+ for (int i=0; i<5; i++) {
+ type[i] = 0;
+ }
+ DrawPoly(d, 5, p, type, color, 0, DRAW_CLOSED);
+ DrawPoly(d, 5, p, type, drawColorGold, 0, DRAW_FILL);
} else {
// draw a bitmap for static object
wDrawBitMap_p bm;
@@ -129,26 +124,26 @@ static void DrawNote(track_p t, drawCmd_p d, wDrawColor color)
bm = note_bm;
}
}
- DrawBitMap(d, xx->pos, bm, color);
- }
+ DrawBitMap(d, xx->pos, bm, color);
+ }
}
static DIST_T DistanceNote(track_p t, coOrd * p)
{
- struct extraDataNote *xx = (struct extraDataNote *)GetTrkExtraData(t);
- DIST_T d;
- d = FindDistance(*p, xx->pos);
+ struct extraDataNote_t *xx = GET_EXTRA_DATA( t, T_NOTE, extraDataNote_t );
+ DIST_T d;
+ d = FindDistance(*p, xx->pos);
- if (d < 3.0*(mainD.scale/12.0)) {
- return d;
- }
+ if (d < 3.0*(mainD.scale/12.0)) {
+ return d;
+ }
- return 100000.0;
+ return DIST_INF;
}
static void DeleteNote(track_p t)
{
- struct extraDataNote *xx = (struct extraDataNote *)GetTrkExtraData(t);
+ struct extraDataNote_t *xx = GET_EXTRA_DATA( t, T_NOTE, extraDataNote_t );
switch (xx->op) {
case OP_NOTETEXT:
@@ -177,126 +172,8 @@ static void DeleteNote(track_p t)
}
}
-void
-NoteStateSave(track_p trk)
-{
- struct extraDataNote *xx = (struct extraDataNote *)GetTrkExtraData(trk);
- layerSave = GetTrkLayer(trk);
- posSave = xx->pos;
-}
-
-/**
-* Handle Cancel button: restore old values for layer and position
-*/
-
-void
-CommonCancelNote(track_p trk)
-{
- if (inDescribeCmd) {
- struct extraDataNote *xx = (struct extraDataNote *)GetTrkExtraData(trk);
- xx->layer = layerSave;
- xx->pos = posSave;
- SetBoundingBox(trk, xx->pos, xx->pos);
- }
-}
-
-static void
-CommonUpdateNote(track_p trk, int inx, struct extraDataNote *noteData )
-{
- struct extraDataNote *xx = (struct extraDataNote *)GetTrkExtraData(trk);
-
- switch (inx) {
- case OR_NOTE:
- xx->pos = noteData->pos;
- SetBoundingBox(trk, xx->pos, xx->pos);
- break;
- case LY_NOTE:
- SetTrkLayer(trk, noteData->layer);
- break;
- case CANCEL_NOTE:
- CommonCancelNote(trk);
- break;
- }
-}
-
-
-void UpdateFile(struct extraDataNote *noteUIData, int inx, BOOL_T needUndoStart)
-{
- track_p trk = noteUIData->trk;
- struct extraDataNote *xx = (struct extraDataNote *)GetTrkExtraData(trk);
-
- switch (inx) {
- case OR_NOTE:
- case LY_NOTE:
- case CANCEL_NOTE:
- CommonUpdateNote(trk, inx, noteUIData);
- break;
- case OK_FILE:
- {
- DeleteNote(trk);
- xx->noteData.fileData.path = MyStrdup(noteUIData->noteData.fileData.path);
- xx->noteData.fileData.title = MyStrdup(noteUIData->noteData.fileData.title);
- //result = malloc( maximumSize );
- //resultSize = File2URI(noteFileData->path, maximumSize, result);
- //xx->text = (char*)MyMalloc(resultSize + strlen(noteFileData->title) + 2);
- //sprintf(xx->text, "%s %s", result, noteFileData->title);
- //if (noteFileData->inArchive) {
- // CopyFile(noteFileData->path, archiveDirectory);
-
- //}
- //free(result);
- }
- break;
-
- default:
- break;
- }
-}
-
-void UpdateLink(struct extraDataNote *noteUIData, int inx, BOOL_T needUndoStart)
-{
- track_p trk = noteUIData->trk;
- struct extraDataNote *xx = (struct extraDataNote *)GetTrkExtraData(trk);
-
- switch (inx) {
- case OR_NOTE:
- case LY_NOTE:
- case CANCEL_NOTE:
- CommonUpdateNote(trk, inx, noteUIData);
- break;
-
- case OK_LINK:
- DeleteNote(trk);
- xx->noteData.linkData.title = MyStrdup(noteUIData->noteData.linkData.title);
- xx->noteData.linkData.url = MyStrdup(noteUIData->noteData.linkData.url);
- break;
- default:
- break;
- }
-}
-
-void UpdateText(struct extraDataNote *noteUIData, int inx, BOOL_T needUndoStart)
-{
- track_p trk = noteUIData->trk;
- struct extraDataNote *xx = (struct extraDataNote *)GetTrkExtraData(trk);
-
- switch (inx) {
- case OR_NOTE:
- case LY_NOTE:
- case CANCEL_NOTE:
- CommonUpdateNote(trk, inx, noteUIData);
- break;
-
- case OK_TEXT:
- DeleteNote(trk);
- xx->noteData.text = MyStrdup(noteUIData->noteData.text);
- break;
- default:
- break;
- }
- changed++;
-}
+#if 0
/**
* Get the delimited marker for the current note. Markers start and end with
* a delimiter. The marker itself is a single digit number. For plain text notes
@@ -323,6 +200,7 @@ GetNoteMarker(enum noteCommands command )
}
return(marker);
}
+#endif
/**
* Write the note to file. Handles the complete syntax for a note statement
@@ -334,12 +212,15 @@ GetNoteMarker(enum noteCommands command )
static BOOL_T WriteNote(track_p t, FILE * f)
{
- struct extraDataNote *xx = (struct extraDataNote *)GetTrkExtraData(t);
- BOOL_T rc = TRUE;
+ struct extraDataNote_t *xx = GET_EXTRA_DATA( t, T_NOTE, extraDataNote_t );
+ BOOL_T rc = TRUE;
+#ifdef UTFCONVERT
+ unsigned strings2convert = 1;
+#endif
rc &= fprintf(f, "NOTE %d %u 0 0 %0.6f %0.6f 0 %d", GetTrkIndex(t),
- GetTrkLayer(t),
- xx->pos.x, xx->pos.y, xx->op )>0;
+ GetTrkLayer(t),
+ xx->pos.x, xx->pos.y, xx->op )>0;
char *s[2] = { NULL, NULL };
switch (xx->op) {
@@ -349,16 +230,22 @@ static BOOL_T WriteNote(track_p t, FILE * f)
case OP_NOTELINK:
s[0]=ConvertToEscapedText( xx->noteData.linkData.url );
s[1]=ConvertToEscapedText( xx->noteData.linkData.title );
+#ifdef UTFCONVERT
+ strings2convert = 2;
+#endif
break;
case OP_NOTEFILE:
s[0]=ConvertToEscapedText( xx->noteData.fileData.path );
s[1]=ConvertToEscapedText( xx->noteData.fileData.title );
+#ifdef UTFCONVERT
+ strings2convert = 2;
+#endif
break;
default:
- AbortProg( "WriteNote: %d", xx->op );
+ CHECKMSG( FALSE, ( "WriteNote: %d", xx->op ) );
}
-#ifdef WINDOWS
- for ( int inx = 0; inx < 2; inx++ ) {
+#ifdef UTFCONVERT
+ for ( unsigned int inx = 0; inx < strings2convert; inx++ ) {
if ( RequiresConvToUTF8( s[inx] ) ) {
wSystemToUTF8 ( s[inx], message, sizeof message );
MyFree( s[inx] );
@@ -373,7 +260,7 @@ static BOOL_T WriteNote(track_p t, FILE * f)
MyFree( s[1] );
}
rc &= fprintf( f, "\n" )>0;
-
+
return rc;
}
@@ -386,114 +273,116 @@ static BOOL_T WriteNote(track_p t, FILE * f)
static BOOL_T
ReadTrackNote(char *line)
{
- track_p t;
- int size;
- char * cp;
- struct extraDataNote *xx;
- wIndex_t index;
- wIndex_t layer;
- coOrd pos;
- DIST_T elev;
+ track_p t;
+ int size;
+ char * cp;
+ struct extraDataNote_t *xx;
+ wIndex_t index;
+ wIndex_t layer;
+ coOrd pos;
+ DIST_T elev;
char *noteText;
enum noteCommands noteType;
char * sText;
- if (!GetArgs(line + 5, paramVersion < 3 ? "XXpYdc" : paramVersion < 9 ?
- "dL00pYdc" : "dL00pfdc",
- &index, &layer, &pos, &elev, &size, &cp)) {
- return FALSE;
- }
+ if (!GetArgs(line + 5, paramVersion < 3 ? "XXpYdc" : paramVersion < 9 ?
+ "dL00pYdc" : "dL00pfdc",
+ &index, &layer, &pos, &elev, &size, &cp)) {
+ return FALSE;
+ }
- if ( paramVersion >= 12 ) {
+ if ( paramVersion >= VERSION_INLINENOTE ) {
noteType = size;
t = NewNote(index, pos, noteType);
- SetTrkLayer(t, layer);
-
- xx = (struct extraDataNote *)GetTrkExtraData(t);
+ SetTrkLayer(t, layer);
+
+ xx = GET_EXTRA_DATA( t, T_NOTE, extraDataNote_t );
switch (noteType) {
case OP_NOTETEXT:
- if ( !GetArgs( cp, "qc", &sText, &cp ) )
+ if ( !GetArgs( cp, "qc", &sText, &cp ) ) {
return FALSE;
-#ifdef WINDOWS
+ }
+#ifdef UTFCONVERT
ConvertUTF8ToSystem( sText );
#endif
xx->noteData.text = sText;
break;
case OP_NOTELINK:
- if ( !GetArgs( cp, "qc", &sText, &cp ) )
+ if ( !GetArgs( cp, "qc", &sText, &cp ) ) {
return FALSE;
-#ifdef WINDOWS
+ }
+#ifdef UTFCONVERT
ConvertUTF8ToSystem( sText );
#endif
xx->noteData.linkData.url = sText;
- if ( !GetArgs( cp, "qc", &sText, &cp ) )
+ if ( !GetArgs( cp, "qc", &sText, &cp ) ) {
return FALSE;
-#ifdef WINDOWS
+ }
+#ifdef UTFCONVERT
ConvertUTF8ToSystem( sText );
#endif
xx->noteData.linkData.title = sText;
break;
case OP_NOTEFILE:
- if ( !GetArgs( cp, "qc", &sText, &cp ) )
+ if ( !GetArgs( cp, "qc", &sText, &cp ) ) {
return FALSE;
-#ifdef WINDOWS
+ }
+#ifdef UTFCONVERT
ConvertUTF8ToSystem( sText );
#endif
xx->noteData.fileData.path = sText;
- if ( !GetArgs( cp, "qc", &sText, &cp ) )
+ if ( !GetArgs( cp, "qc", &sText, &cp ) ) {
return FALSE;
-#ifdef WINDOWS
+ }
+#ifdef UTFCONVERT
ConvertUTF8ToSystem( sText );
#endif
xx->noteData.fileData.title = sText;
xx->noteData.fileData.inArchive = FALSE;
break;
default:
- AbortProg( "ReadNote: %d", noteType );
+ CHECKMSG( FALSE, ( "ReadNote: %d", noteType ) );
}
} else {
- noteText = ReadMultilineText();
+ noteText = ReadMultilineText();
- noteType = OP_NOTETEXT;
+ noteType = OP_NOTETEXT;
- if( !strncmp(noteText, DELIMITER, strlen( DELIMITER )) &&
- !strncmp(noteText + strlen(DELIMITER) + 1, DELIMITER, strlen(DELIMITER)) &&
- noteText[strlen(DELIMITER)] - '0' > 0 &&
- noteText[strlen(DELIMITER)] - '0' <= OP_NOTEFILE)
- {
- noteType = noteText[strlen(DELIMITER)] - '0';
- }
+ if( !strncmp(noteText, DELIMITER, strlen( DELIMITER )) &&
+ !strncmp(noteText + strlen(DELIMITER) + 1, DELIMITER, strlen(DELIMITER)) &&
+ noteText[strlen(DELIMITER)] - '0' > 0 &&
+ noteText[strlen(DELIMITER)] - '0' <= OP_NOTEFILE) {
+ noteType = noteText[strlen(DELIMITER)] - '0';
+ }
- t = NewNote(index, pos, noteType);
- SetTrkLayer(t, layer);
-
- xx = (struct extraDataNote *)GetTrkExtraData(t);
+ t = NewNote(index, pos, noteType);
+ SetTrkLayer(t, layer);
- switch (noteType) {
- case OP_NOTETEXT:
- xx->noteData.text = MyStrdup(noteText);
- break;
- case OP_NOTELINK:
- {
- char *ptr;
- ptr = strtok(noteText, " ");
- xx->noteData.linkData.url = MyStrdup(ptr + 2 * strlen(DELIMITER) + 1);
- xx->noteData.linkData.title = MyStrdup(noteText + strlen(ptr) + 1);
- break;
- }
- case OP_NOTEFILE:
- {
- char *ptr;
- ptr = strtok(noteText + 2 * strlen(DELIMITER) + 1, "\"");
- xx->noteData.fileData.path = MyStrdup(ptr);
- xx->noteData.fileData.title = MyStrdup(ptr + strlen(ptr) + 2 );
- xx->noteData.fileData.inArchive = FALSE;
- break;
- }
+ xx = GET_EXTRA_DATA( t, T_NOTE, extraDataNote_t );
+
+ switch (noteType) {
+ case OP_NOTETEXT:
+ xx->noteData.text = MyStrdup(noteText);
+ break;
+ case OP_NOTELINK: {
+ char *ptr;
+ ptr = strtok(noteText, " ");
+ xx->noteData.linkData.url = MyStrdup(ptr + 2 * strlen(DELIMITER) + 1);
+ xx->noteData.linkData.title = MyStrdup(noteText + strlen(ptr) + 1);
+ break;
+ }
+ case OP_NOTEFILE: {
+ char *ptr;
+ ptr = strtok(noteText + 2 * strlen(DELIMITER) + 1, "\"");
+ xx->noteData.fileData.path = MyStrdup(ptr);
+ xx->noteData.fileData.title = MyStrdup(ptr + strlen(ptr) + 2 );
+ xx->noteData.fileData.inArchive = FALSE;
+ break;
+ }
+ }
+ MyFree(noteText);
}
- MyFree(noteText);
- }
return TRUE;
}
@@ -506,42 +395,41 @@ ReadTrackNote(char *line)
static BOOL_T
ReadNote(char * line)
{
- if (strncmp(line, "NOTE MAIN", 9) == 0) {
- return ReadMainNote(line);
- } else {
- return ReadTrackNote(line);
- }
+ if (strncmp(line, "NOTE MAIN", 9) == 0) {
+ return ReadMainNote(line);
+ } else {
+ return ReadTrackNote(line);
+ }
}
static void MoveNote(track_p trk, coOrd orig)
{
- struct extraDataNote * xx = (struct extraDataNote *)GetTrkExtraData(trk);
- xx->pos.x += orig.x;
- xx->pos.y += orig.y;
- SetBoundingBox(trk, xx->pos, xx->pos);
+ struct extraDataNote_t * xx = GET_EXTRA_DATA( trk, T_NOTE, extraDataNote_t );
+ xx->pos.x += orig.x;
+ xx->pos.y += orig.y;
+ SetBoundingBox(trk, xx->pos, xx->pos);
}
static void RotateNote(track_p trk, coOrd orig, ANGLE_T angle)
{
- struct extraDataNote * xx = (struct extraDataNote *)GetTrkExtraData(trk);
- Rotate(&xx->pos, orig, angle);
- SetBoundingBox(trk, xx->pos, xx->pos);
+ struct extraDataNote_t * xx = GET_EXTRA_DATA( trk, T_NOTE, extraDataNote_t );
+ Rotate(&xx->pos, orig, angle);
+ SetBoundingBox(trk, xx->pos, xx->pos);
}
static void RescaleNote(track_p trk, FLOAT_T ratio)
{
- struct extraDataNote * xx = (struct extraDataNote *)GetTrkExtraData(trk);
- xx->pos.x *= ratio;
- xx->pos.y *= ratio;
+ struct extraDataNote_t * xx = GET_EXTRA_DATA( trk, T_NOTE, extraDataNote_t );
+ xx->pos.x *= ratio;
+ xx->pos.y *= ratio;
}
static void DescribeNote(track_p trk, char * str, CSIZE_T len)
{
if (IsLinkNote(trk)) {
DescribeLinkNote(trk, str, len);
- }
- else {
+ } else {
if (IsFileNote(trk)) {
DescribeFileNote(trk, str, len);
} else {
@@ -550,7 +438,8 @@ static void DescribeNote(track_p trk, char * str, CSIZE_T len)
}
}
-static void ActivateNote(track_p trk) {
+static void ActivateNote(track_p trk)
+{
if (IsLinkNote(trk) ) {
ActivateLinkNote(trk);
}
@@ -563,8 +452,8 @@ static BOOL_T QueryNote( track_p trk, int query )
{
switch ( query ) {
case Q_IS_ACTIVATEABLE:;
- if (IsFileNote(trk)) return TRUE;
- if (IsLinkNote(trk)) return TRUE;
+ if (IsFileNote(trk)) { return TRUE; }
+ if (IsLinkNote(trk)) { return TRUE; }
break;
default:
return FALSE;
@@ -574,32 +463,31 @@ static BOOL_T QueryNote( track_p trk, int query )
static wBool_t CompareNote( track_cp trk1, track_cp trk2 )
{
- struct extraDataNote *xx1 = (struct extraDataNote *)GetTrkExtraData( trk1 );
- struct extraDataNote *xx2 = (struct extraDataNote *)GetTrkExtraData( trk2 );
+ struct extraDataNote_t *xx1 = GET_EXTRA_DATA( trk1, T_NOTE, extraDataNote_t );
+ struct extraDataNote_t *xx2 = GET_EXTRA_DATA( trk2, T_NOTE, extraDataNote_t );
char * cp = message + strlen(message);
REGRESS_CHECK_POS( "Pos", xx1, xx2, pos )
- REGRESS_CHECK_INT( "Layer", xx1, xx2, layer )
REGRESS_CHECK_INT( "Op", xx1, xx2, op )
return TRUE;
}
static trackCmd_t noteCmds = {
- "NOTE",
- DrawNote,
- DistanceNote,
- DescribeNote,
- DeleteNote,
- WriteNote,
- ReadNote,
- MoveNote,
- RotateNote,
- RescaleNote,
- NULL, /* audit */
- NULL, /* getAngle */
- NULL, /* split */
- NULL, /* traverse */
- NULL, /* enumerate */
- NULL, /* redraw */
+ "NOTE",
+ DrawNote,
+ DistanceNote,
+ DescribeNote,
+ DeleteNote,
+ WriteNote,
+ ReadNote,
+ MoveNote,
+ RotateNote,
+ RescaleNote,
+ NULL, /* audit */
+ NULL, /* getAngle */
+ NULL, /* split */
+ NULL, /* traverse */
+ NULL, /* enumerate */
+ NULL, /* redraw */
NULL, /*trim*/
NULL, /*merge*/
NULL, /*modify*/
@@ -629,51 +517,45 @@ static trackCmd_t noteCmds = {
static STATUS_T CmdNote(wAction_t action, coOrd pos)
{
- static coOrd oldPos;
- static int state_on = FALSE;
- track_p trk;
-
- switch (action) {
- case C_START:
- InfoMessage(_("Place a note on the layout"));
- curNoteType = (long)commandContext;
- return C_CONTINUE;
-
- case C_DOWN:
- state_on = TRUE;
- oldPos = pos;
- return C_CONTINUE;
-
- case C_MOVE:
- oldPos = pos;
- return C_CONTINUE;
-
- case C_UP:
- UndoStart(_("New Note"), "New Note");
- state_on = FALSE;
- trk = NewNote(-1, pos, curNoteType );
- inDescribeCmd = TRUE;
- DrawNewTrack(trk);
-
- switch (curNoteType)
- {
+ static coOrd oldPos;
+ static int state_on = FALSE;
+ track_p trk;
+
+ switch (action) {
+ case C_START:
+ InfoMessage(_("Place a note on the layout"));
+ curNoteType = VP2L(commandContext);
+ return C_CONTINUE;
+
+ case C_DOWN:
+ state_on = TRUE;
+ oldPos = pos;
+ return C_CONTINUE;
+
+ case C_MOVE:
+ oldPos = pos;
+ return C_CONTINUE;
+
+ case C_UP:
+ UndoStart(_("New Note"), "New Note");
+ state_on = FALSE;
+
+ switch (curNoteType) {
case OP_NOTETEXT:
- NewTextNoteUI(trk);
+ NewTextNoteUI(pos);
break;
case OP_NOTELINK:
- NewLinkNoteUI(trk);
+ NewLinkNoteUI(pos);
break;
case OP_NOTEFILE:
- NewFileNoteUI(trk);
+ NewFileNoteUI(pos);
break;
}
- inDescribeCmd = FALSE;
-
return C_CONTINUE;
- case C_REDRAW:
- if (state_on) {
+ case C_REDRAW:
+ if (state_on) {
switch (curNoteType) {
case OP_NOTETEXT:
DrawBitMap(&tempD, oldPos, note_bm, normalColor);
@@ -681,29 +563,33 @@ static STATUS_T CmdNote(wAction_t action, coOrd pos)
case OP_NOTELINK:
DrawBitMap(&tempD, oldPos, link_bm, normalColor);
break;
+ case OP_NOTEFILE:
+ DrawBitMap(&tempD, oldPos, document_bm, normalColor);
+ break;
}
- }
- return C_CONTINUE;
+ }
+ return C_CONTINUE;
- case C_CANCEL:
- DescribeCancel();
- state_on = FALSE;
- return C_CONTINUE;
- }
+ case C_CANCEL:
+ DescribeCancel();
+ state_on = FALSE;
+ return C_CONTINUE;
+ }
- return C_INFO;
+ return C_INFO;
}
#include "bitmaps/note.xbm"
#include "bitmaps/link.xbm"
#include "bitmaps/clip.xbm"
-#include "bitmaps/cnote.xpm"
+// RWS not used #include "bitmaps/note.xpm"
void InitTrkNote(wMenu_p menu)
{
- note_bm = wDrawBitMapCreate(mainD.d, note_width, note_width, 8, 8, note_bits);
- link_bm = wDrawBitMapCreate(mainD.d, note_width, note_width, 8, 8, link_bits);
- document_bm = wDrawBitMapCreate(mainD.d, note_width, note_width, 8, 8, clip_bits);
+ note_bm = wDrawBitMapCreate(mainD.d, note_width, note_width, 8, 8, note_bits);
+ link_bm = wDrawBitMapCreate(mainD.d, note_width, note_width, 8, 8, link_bits);
+ document_bm = wDrawBitMapCreate(mainD.d, note_width, note_width, 8, 8,
+ clip_bits);
ButtonGroupBegin(_("Notes"), "cmdNoteCmd", _("Add notes"));
for (int i = 0; i < NOTETYPESCOUNT; i++) {
@@ -711,8 +597,9 @@ void InitTrkNote(wMenu_p menu)
wIcon_p icon;
nt = noteTypes + i;
- icon = wIconCreatePixMap(nt->xpm);
- AddMenuButton(menu, CmdNote, nt->helpKey, _(nt->cmdName), icon, LEVEL0_50, IC_STICKY | IC_POPUP2, nt->acclKey, (void *)(intptr_t)nt->OP);
+ icon = wIconCreatePixMap(nt->xpm[iconSize]);
+ AddMenuButton(menu, CmdNote, nt->helpKey, _(nt->cmdName), icon, LEVEL0_50,
+ IC_STICKY | IC_POPUP2, nt->acclKey, I2VP(nt->OP));
}
ButtonGroupEnd();