summaryrefslogtreecommitdiff
path: root/app/bin/cmisc.c
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2025-09-20 19:19:34 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2025-09-20 19:19:34 +0200
commite7d20cf352688bf717a01f4e6d9e6f497c2bea4c (patch)
treecfd2ef9b569f49af985a6f1ec44f2614f63c8e78 /app/bin/cmisc.c
parenta14a7a0ccc9de76aeab0b2e4bbf58f1a79deedc2 (diff)
New upstream version 5.3.1Beta2upstream/5.3.1Beta2
Diffstat (limited to 'app/bin/cmisc.c')
-rw-r--r--app/bin/cmisc.c157
1 files changed, 84 insertions, 73 deletions
diff --git a/app/bin/cmisc.c b/app/bin/cmisc.c
index 580c681..354c290 100644
--- a/app/bin/cmisc.c
+++ b/app/bin/cmisc.c
@@ -28,6 +28,7 @@
#include "track.h"
#include "common-ui.h"
#include "draw.h"
+#include "note.h"
EXPORT wIndex_t describeCmdInx;
EXPORT BOOL_T inDescribeCmd;
@@ -42,6 +43,7 @@ EXPORT BOOL_T descUndoStarted;
static BOOL_T descNeedDrawHilite;
static wWinPix_t describeW_posy;
static wWinPix_t describeCmdButtonEnd;
+EXPORT char * descTitle = "<>";
static wMenu_p descPopupM;
@@ -230,7 +232,7 @@ static void DescribeUpdate(
}
if (!descUndoStarted) {
- UndoStart(_("Change Track"), "Change Track");
+ UndoStart( descTitle, "Change Track" );
descUndoStarted = TRUE;
}
@@ -296,30 +298,30 @@ static void DescribeUpdate(
}
-static void DescOk(void * junk)
+EXPORT void DescribeDone(void * junk)
{
- wHide(describePG.win);
-
- if (layerValue && *layerValue>=0) {
- SetTrkLayer(descTrk,
- editableLayerList[*layerValue]); //int found that is really in the parm controls.
+ if (descTrk) {
+ CHECK(!IsTrackDeleted(descTrk));
+ // TODO_CANCEL last arg could be true
+ if ( descUpdateFunc && descTrk && GetTrkType(descTrk) != T_NOTE ) {
+ descUpdateFunc(descTrk, -1, descData, !descUndoStarted);
+ }
+ if (layerValue && *layerValue>=0) {
+ SetTrkLayer(descTrk,
+ editableLayerList[*layerValue]);
+ }
+ // wipe out reference
+ layerValue = NULL;
+ descTrk = NULL;
+ }
+ if (describePG.win && wWinIsVisible(describePG.win)) {
+ wHide(describePG.win);
}
- layerValue = NULL; // wipe out reference
- descUpdateFunc(descTrk, -1, descData, !descUndoStarted);
- descTrk = NULL;
-
if (descUndoStarted) {
UndoEnd();
descUndoStarted = FALSE;
}
-
descNeedDrawHilite = FALSE;
- if (programMode == MODE_DESIGN) {
- Reset(); // DescOk
- } else {
- descNeedDrawHilite = FALSE;
- wSetCursor(mainD.d,defaultCursor);
- }
}
@@ -461,12 +463,16 @@ void DoDescribe(char * title, track_p trk, descData_p data, descUpdate_t update)
descData = data;
descUpdateFunc = update;
describeW_posy = 0;
+ descTitle = title;
if (describePG.win == NULL) {
/* SDB 5.13.2005 */
- ParamCreateDialog(&describePG, _("Description"), _("Done"), DescOk,
- (paramActionCancelProc) DescribeCancel,
- TRUE, DescribeLayout, F_RECALLPOS,
+ ParamCreateDialog(&describePG, _("Description"),
+ //_("Done"), DescribeDone,
+ NULL, NULL,
+ ParamCancel_Reset,
+ TRUE, DescribeLayout,
+ F_RECALLPOS|PD_F_ALT_CANCELLABEL,
DescribeUpdate);
describeCmdButtonEnd = wControlBelow((wControl_p)describePG.helpB);
}
@@ -561,26 +567,6 @@ static void DescChange(long changes)
*/
-EXPORT void DescribeCancel(void)
-{
- if (describePG.win && wWinIsVisible(describePG.win)) {
- if (descTrk) {
- CHECK(!IsTrackDeleted(descTrk));
- descUpdateFunc(descTrk, -1, descData, TRUE);
- descTrk = NULL;
-
- }
-
- wHide(describePG.win);
-
- if (descUndoStarted) {
- UndoEnd();
- descUndoStarted = FALSE;
- }
- }
-
- descNeedDrawHilite = FALSE;
-}
EXPORT STATUS_T CmdDescribe(wAction_t action, coOrd pos)
@@ -590,10 +576,11 @@ EXPORT STATUS_T CmdDescribe(wAction_t action, coOrd pos)
switch (action) {
case C_START:
- InfoMessage(_("Select track to describe +Shift for Frozen"));
+ InfoMessage(_("Click on object for Properties +Shift for Frozen"));
wSetCursor(mainD.d,wCursorQuestion);
descUndoStarted = FALSE;
trk = NULL;
+ descTrk = NULL;
return C_CONTINUE;
case wActionMove:
@@ -607,38 +594,59 @@ EXPORT STATUS_T CmdDescribe(wAction_t action, coOrd pos)
case C_DOWN:
- if ((trk = OnTrack(&pos, FALSE, FALSE)) != NULL) {
- if (GetLayerFrozen(GetTrkLayer(trk)) && !(MyGetKeyState()& WKEY_SHIFT)) {
- InfoMessage("Track is Frozen, Add Shift to Describe");
- trk = NULL;
- return C_CONTINUE;
- }
- if (describePG.win && wWinIsVisible(describePG.win) && descTrk) {
- descUpdateFunc(descTrk, -1, descData, TRUE);
- descTrk = NULL;
- }
+ if ((trk = OnTrack(&pos, FALSE, FALSE)) == NULL) {
+ // Not a track - ignore
+ return C_CONTINUE;
+ }
+#ifdef TODO_CANCEL
+ if ( trk == descTrk ) {
+ // Same track - ignore
+ return C_CONTINUE;
+ }
+#endif
+ InfoMessage( "" );
+ DescribeDone( NULL );
+ if ( trk == NULL ) {
+ // This should not happen.
+ // Somebody is stomping on trk
+ // Unreproducible.
+ printf( "CmdDescribe: trk is NULL!\n" );
+ return C_CONTINUE;
+ }
+ if (GetLayerFrozen(GetTrkLayer(trk)) && !(MyGetKeyState()& WKEY_SHIFT)) {
+ InfoMessage("Track is Frozen, Add Shift to Describe");
+ trk = NULL;
+ return C_CONTINUE;
+ }
+ if (describePG.win && wWinIsVisible(describePG.win) && descTrk) {
+ // finish update
+ descUpdateFunc(descTrk, -1, descData, TRUE);
+ descTrk = NULL;
+ }
- descBorder = mainD.scale*0.1;
+ descBorder = mainD.scale*0.1;
- if (descBorder < trackGauge) {
- descBorder = trackGauge;
- }
+ if (descBorder < trackGauge) {
+ descBorder = trackGauge;
+ }
- inDescribeCmd = TRUE;
- GetBoundingBox(trk, &descSize, &descOrig);
- descOrig.x -= descBorder;
- descOrig.y -= descBorder;
- descSize.x -= descOrig.x-descBorder;
- descSize.y -= descOrig.y-descBorder;
- descNeedDrawHilite = TRUE;
- DescribeTrack(trk, msg, 255);
- inDescribeCmd = FALSE;
- InfoMessage(msg);
- trk = NULL;
+ inDescribeCmd = TRUE;
+ GetBoundingBox(trk, &descSize, &descOrig);
+ descOrig.x -= descBorder;
+ descOrig.y -= descBorder;
+ descSize.x -= descOrig.x-descBorder;
+ descSize.y -= descOrig.y-descBorder;
+ descNeedDrawHilite = TRUE;
+ DescribeTrack(trk, msg, 255);
+ inDescribeCmd = FALSE;
+ InfoMessage(msg);
+ // Ugly code: but Describe Notes do not continue like other objects
+ if ( GetTrkType( trk ) != T_NOTE ) {
+ descTrk = trk;
} else {
- InfoMessage("");
+ descTrk = NULL;
}
-
+ trk = NULL;
return C_CONTINUE;
case C_REDRAW:
@@ -667,7 +675,7 @@ EXPORT STATUS_T CmdDescribe(wAction_t action, coOrd pos)
break;
case C_CANCEL:
- DescribeCancel();
+ DescribeDone( NULL );
wSetCursor(mainD.d,defaultCursor);
return C_CONTINUE;
@@ -675,6 +683,9 @@ EXPORT STATUS_T CmdDescribe(wAction_t action, coOrd pos)
menuPos = pos;
if (!trk) { wMenuPopupShow(descPopupM); }
return C_CONTINUE;
+
+ case C_FINISH:
+ return C_CONTINUE;
}
@@ -683,19 +694,19 @@ EXPORT STATUS_T CmdDescribe(wAction_t action, coOrd pos)
-#include "bitmaps/describe.xpm3"
+#include "bitmaps/describe.image3"
void InitCmdDescribe(wMenu_p menu)
{
describeCmdInx = AddMenuButton(menu, CmdDescribe, "cmdDescribe",
- _("Properties"), wIconCreatePixMap(describe_xpm3[iconSize]),
+ _("Properties"), wIconCreatePixMap(describe_image3[iconSize]),
LEVEL0, IC_CANCEL|IC_POPUP|IC_WANT_MOVE|IC_CMDMENU, ACCL_DESCRIBE, NULL);
RegisterChangeNotification(DescChange);
ParamRegister(&describePG);
}
void InitCmdDescribe2(wMenu_p menu)
{
- descPopupM = MenuRegister( "Describe Context Menu" );
+ descPopupM = MenuRegister( "Properties Context Menu" );
wMenuPushCreate(descPopupM, "cmdSelectMode", GetBalloonHelpStr("cmdSelectMode"),
0, DoCommandB, I2VP(selectCmdInx));
wMenuPushCreate(descPopupM, "cmdModifyMode", GetBalloonHelpStr("cmdModifyMode"),