Skip to content
Snippets Groups Projects
Commit 6d80c6eb authored by rswindell's avatar rswindell
Browse files

Deuce's mods for inserting at the end of a list and other fixes.

parent 29cac68a
No related branches found
No related tags found
No related merge requests found
...@@ -126,6 +126,8 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar ...@@ -126,6 +126,8 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar
size_t app_title_len; size_t app_title_len;
char **it; char **it;
char str[128]; char str[128];
char tmpstr[128]; // Used for restoring the <-- At End --> bit
char tmpstr2[128]; // for Add and Paste
int ret; int ret;
/* Count number of menu options */ /* Count number of menu options */
...@@ -133,7 +135,7 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar ...@@ -133,7 +135,7 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar
if(option[cnt][0]==0) if(option[cnt][0]==0)
break; break;
options=cnt; options=cnt;
freecnt=cnt+4; /* Add, Delete, Copy, Paste */ freecnt=cnt+5; /* Add, Delete, Copy, Paste, At End */
// Allocate and fill **it // Allocate and fill **it
it=(char **)MALLOC(sizeof(char *)*2*(freecnt)); it=(char **)MALLOC(sizeof(char *)*2*(freecnt));
...@@ -185,6 +187,7 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar ...@@ -185,6 +187,7 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar
strcpy(it[cnt2++],"Paste"); strcpy(it[cnt2++],"Paste");
cnt++; cnt++;
} }
if(width<strlen(title)+4) if(width<strlen(title)+4)
width=strlen(title)+4; width=strlen(title)+4;
app_title_len=strlen(app_title); app_title_len=strlen(app_title);
...@@ -202,21 +205,19 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar ...@@ -202,21 +205,19 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar
ret=dialog_yesno((char*)NULL,title,5,width); ret=dialog_yesno((char*)NULL,title,5,width);
else else
ret=dialog_noyes((char*)NULL,title,5,width); ret=dialog_noyes((char*)NULL,title,5,width);
break;
/* What is this line doing? -1 is ESC, which should not be the same as "No".
* if(ret) ret=1; else ret=0;
*/
}
else {
/* make sure we're wide enough to display the application title */
if(width<app_title_len+4)
width=app_title_len+4;
dialog_clear_norefresh();
scrollpos=0;
if(i>height)
scrollpos=i-height;
ret=dialog_menu(app_title, title, height+8, width, height, cnt, it, str, &i, &scrollpos);
} }
/* make sure we're wide enough to display the application title */
if(width<app_title_len+4)
width=app_title_len+4;
dialog_clear_norefresh();
scrollpos=0;
if(i>=height) // Whenever advanced was returned from, it had something
scrollpos=i-height+1; // Beyond the bottom selected
i=i-scrollpos; // Apparently, *ch is the current position ON THE SCREEN
ret=dialog_menu(app_title, title, height+8, width, height, cnt, it, str, &i, &scrollpos);
if(ret==1) { /* Cancel */ if(ret==1) { /* Cancel */
ret = -1; ret = -1;
*cur = -1; *cur = -1;
...@@ -234,7 +235,13 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar ...@@ -234,7 +235,13 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar
case 'A': /* Add */ case 'A': /* Add */
dialog_clear_norefresh(); dialog_clear_norefresh();
if(options>0) { if(options>0) {
ret=dialog_menu(title, "Insert Where?", height+8, width, height, options, it, str, 0, 0); strncpy(tmpstr,it[options*2],127);
sprintf(it[options*2],"%u",options+1);
strncpy(tmpstr2,it[options*2+1],127);
strcpy(it[options*2+1],"<-- At End -->");
ret=dialog_menu(title, "Insert Where?", height+8, width, height, options+1, it, str, 0, 0);
strncpy(it[options*2],tmpstr,127);
strncpy(it[options*2+1],tmpstr2,127);
if(ret==0) { if(ret==0) {
*cur=atoi(str)-1; *cur=atoi(str)-1;
ret=*cur|MSK_INS; ret=*cur|MSK_INS;
...@@ -276,7 +283,13 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar ...@@ -276,7 +283,13 @@ int ulist(int mode, char left, int top, char width, int *cur, int *bar
case 'P': /* Paste */ case 'P': /* Paste */
dialog_clear_norefresh(); dialog_clear_norefresh();
if(options>0) { if(options>0) {
ret=dialog_menu(title, "Paste Where?", height+8, width, height, options, it, str, 0, 0); strncpy(tmpstr,it[options*2],127);
sprintf(it[options*2],"%u",options+1);
strncpy(tmpstr2,it[options*2+1],127);
strcpy(it[options*2+1],"<-- At End -->");
ret=dialog_menu(title, "Paste Where?", height+8, width, height, options+1, it, str, 0, 0);
strncpy(it[options*2],tmpstr,127);
strncpy(it[options*2+1],tmpstr2,127);
if(ret==0) { if(ret==0) {
*cur=atoi(str)-1; *cur=atoi(str)-1;
ret=*cur|MSK_PUT; ret=*cur|MSK_PUT;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment