692065227f9b0f987144c4608ffd6c31ce2af35d kate Mon Jul 29 17:45:05 2019 -0700 Add support for styling submit buttons to indicate if they have been pressed (in modal mode). Do this for reverse and multi-region buttons on hgTracks. refs #23922 diff --git src/lib/cheapcgi.c src/lib/cheapcgi.c index b04d3b5..c0530b5 100644 --- src/lib/cheapcgi.c +++ src/lib/cheapcgi.c @@ -1482,59 +1482,64 @@ "document.%s.%s.value = ''; document.%s.submit();", form, field, form); cgiMakeOnClickButton(id, javascript, " Clear "); } void cgiMakeClearButtonNoSubmit(char *form, char *field) /* Make button to clear a text field, without resubmitting the form. */ { char id[256]; safef(id, sizeof id, "%s_clear", field); char javascript[1024]; safef(javascript, sizeof javascript, "document.%s.%s.value = '';", form, field); cgiMakeOnClickButton(id, javascript, " Clear "); } -static void cgiMakeSubmitButtonWithOptionalMsgAndOnClick(char *name, char *value, char *msg, char *onClick) -/* Make 'submit' type button, with optional messsage and onclick javascript */ +void cgiMakeSubmitButtonMaybePressed(char *name, char *value, char *msg, + char *onClick, boolean pressed) +/* Make 'submit' type button, with optional messsage and onclick javascript. + Set styling to indicate whether button has been pressed (for buttons that change browser mode). + */ { printf("<input type='submit' name='%s' id='%s' value='%s'", name, name, value); +if (pressed) + printf(" class='pressed'"); if (msg) printf(" title='%s'", msg); printf(">"); if (onClick) jsOnEventById("click", name, onClick); } void cgiMakeButtonWithMsg(char *name, char *value, char *msg) /* Make 'submit' type button. Display msg on mouseover, if present*/ { -cgiMakeSubmitButtonWithOptionalMsgAndOnClick(name, value, msg, NULL); +cgiMakeSubmitButtonMaybePressed(name, value, msg, NULL, FALSE); } void cgiMakeOnClickSubmitButton(char *command, char *name, char *value) /* Make submit button with both variable name and value with client side * onClick (java)script. */ { -cgiMakeSubmitButtonWithOptionalMsgAndOnClick(name, value, NULL, command); +cgiMakeSubmitButtonMaybePressed(name, value, NULL, command, FALSE); } void cgiMakeButtonWithOnClick(char *name, char *value, char *msg, char *onClick) /* Make 'submit' type button, with onclick javascript */ { -cgiMakeSubmitButtonWithOptionalMsgAndOnClick(name, value, msg, onClick); +cgiMakeSubmitButtonMaybePressed(name, value, msg, onClick, FALSE); } void cgiMakeButton(char *name, char *value) /* Make 'submit' type button */ { cgiMakeButtonWithMsg(name, value, NULL); } void cgiMakeOnClickButton(char *id, char *command, char *value) /* Make button with client side onClick javascript. */ { printf("<INPUT TYPE='button' id='%s' VALUE=\"%s\">", id, value); jsOnEventById("click", id, command); }