/*= CursorLeft ============================================================== Purpose: Moves the cursor left by one character Inputs: none Returns: none ============================================================================*/ void CursorLeft(void) { /* if cursor is not already at the left-most position */ if (GET_CURSOR() > strlenpgm( (ROM FAR char *) gCmdLinePrompt)) { SET_CURSOR( GET_CURSOR() - 1); putrsUART( (ROM FAR char *) cursorLeftEscapeSequence); } }
/*= CursorLeft ============================================================== Purpose: Moves the cursor left by one character Inputs: none Returns: none ============================================================================*/ void CursorLeft(void) { /* if cursor is not already at the left-most position */ if (GET_CURSOR() > strlen( (const FAR char *) gCmdLinePrompt)) { SET_CURSOR( GET_CURSOR() - 1); SYS_CONSOLE_MESSAGE(cursorLeftEscapeSequence); } }
/*= CursorRight ============================================================= Purpose: Moves the cursor right by one character Inputs: none Returns: none ============================================================================*/ void CursorRight(void) { /* if cursor is not already at the right-most position */ if (GET_CURSOR() < GET_LEN_RX_CMD_STRING() + gCmdLinePromptLength) { SET_CURSOR( GET_CURSOR() + 1); SYS_CONSOLE_MESSAGE(cursorRightEscapeSequence); } }
/*= CursorRight ============================================================= Purpose: Moves the cursor right by one character Inputs: none Returns: none ============================================================================*/ tZGVoidReturn CursorRight(tZGVoidInput) { /* if cursor is not already at the right-most position */ if (GET_CURSOR() < GET_LEN_RX_CMD_STRING() + gCmdLinePromptLength) { SET_CURSOR( GET_CURSOR() + 1); ZG_PUTRSUART( (ROM FAR char*) cursorRightEscapeSequence); } }
/*= CursorHome ============================================================== Purpose: Moves the cursor to the left-most position of the command line (just in front of the prompt). Inputs: none Returns: none ============================================================================*/ static tZGVoidReturn CursorHome(tZGVoidInput) { /* if cursor not at start of command line */ if (GET_CURSOR() != gCmdLinePromptLength) { /* move it to start of command line */ CursorLeft_N(GET_CURSOR() - gCmdLinePromptLength); } }
/*= CursorRight ============================================================= Purpose: Moves the cursor right by one character Inputs: none Returns: none ============================================================================*/ void CursorRight(void) { /* if cursor is not already at the right-most position */ if (GET_CURSOR() < GET_LEN_RX_CMD_STRING() + gCmdLinePromptLength) { SET_CURSOR( GET_CURSOR() + 1); putrsUART( (ROM FAR char*) cursorRightEscapeSequence); } }
/*= CursorHome ============================================================== Purpose: Moves the cursor to the left-most position of the command line (just in front of the prompt). Inputs: none Returns: none ============================================================================*/ static void CursorHome(void) { /* if cursor not at start of command line */ if (GET_CURSOR() != gCmdLinePromptLength) { /* move it to start of command line */ CursorLeft_N(GET_CURSOR() - gCmdLinePromptLength); } }
/*= CursorLeft ============================================================== Purpose: Moves the cursor left by one character Inputs: none Returns: none ============================================================================*/ tZGVoidReturn CursorLeft(tZGVoidInput) { /* if cursor is not already at the left-most position */ if (GET_CURSOR() > strlenpgm( (ROM FAR char *) gCmdLinePrompt)) { SET_CURSOR( GET_CURSOR() - 1); ZG_PUTRSUART( (ROM FAR char *) cursorLeftEscapeSequence); } }
static tZGVoidReturn CursorEnd(tZGVoidInput) { tZGU8 len; if ( (GET_LEN_RX_CMD_STRING() + gCmdLinePromptLength) != GET_CURSOR()) { len = GET_LEN_RX_CMD_STRING() - GET_CURSOR() + gCmdLinePromptLength; CursorRight_N(len); } }
static void CursorEnd(void) { UINT8 len; if ( (GET_LEN_RX_CMD_STRING() + gCmdLinePromptLength) != GET_CURSOR()) { len = GET_LEN_RX_CMD_STRING() - GET_CURSOR() + gCmdLinePromptLength; CursorRight_N(len); } }
/*= CursorLeft_N ============================================================== Purpose: Moves the cursor left N characters to the left Inputs: n -- number of characters to move the cursor to the left Note: This sequence only takes a single digit of length, so may need to do the move in steps Returns: none ============================================================================*/ tZGVoidReturn CursorLeft_N(tZGU8 n) { tZGS8 sequence_string[sizeof(cursorLeftEscapeSequence) + 2]; /* null and extra digit */ if (n > 0u) { SET_CURSOR( GET_CURSOR() - n ); sequence_string[0] = cursorLeftEscapeSequence[0]; /* ESC */ sequence_string[1] = cursorLeftEscapeSequence[1]; /* '[' */ if (n < 10u) { sequence_string[2] = n + '0'; /* ascii digit */ sequence_string[3] = cursorLeftEscapeSequence[3]; /* 'D' */ sequence_string[4] = '\0'; } else { sequence_string[2] = (n / 10) + '0'; /* first ascii digit */ sequence_string[3] = (n % 10) + '0'; /* second ascii digit */ sequence_string[4] = cursorLeftEscapeSequence[3]; /* 'D' */ sequence_string[5] = '\0'; } ZG_PUTSUART( (char *) sequence_string); } }
int QryServSynSql::init(ABMException &oExp) { try { if (GET_CURSOR(m_poTest, m_poTTConn, m_sConnTns, oExp) != 0) { ADD_EXCEPT0(oExp, "QryPasswordSendSql::init m_poSend init failed!"); return -1; } return 0; } catch (TTStatus oSt) { ADD_EXCEPT1(oExp, "QryPasswordSendSql::init oSt.err_msg=%s", oSt.err_msg); } return -1; }
static void EraseEntireLine() { // int i; SYS_CONSOLE_MESSAGE(eraseEntireLineEscapeSequence); CursorLeft_N(GET_CURSOR()); SET_CURSOR(0); }
/*= CursorLeft_N ============================================================== Purpose: Moves the cursor left N characters to the left Inputs: n -- number of characters to move the cursor to the left Note: This sequence only takes a single digit of length, so may need to do the move in steps Returns: none ============================================================================*/ void CursorLeft_N(uint8_t n) { char sequence_string[sizeof(cursorLeftEscapeSequence) + 2]; /* null and extra digit */ // ASSERT(n <= g_ConsoleContext.cursorIndex + CMD_LINE_PROMPT_LENGTH); if (n > 0u) { SET_CURSOR( GET_CURSOR() - n ); sequence_string[0] = cursorLeftEscapeSequence[0]; /* ESC */ sequence_string[1] = cursorLeftEscapeSequence[1]; /* '[' */ if (n < 10u) { sequence_string[2] = n + '0'; /* ascii digit */ sequence_string[3] = cursorLeftEscapeSequence[3]; /* 'D' */ sequence_string[4] = '\0'; } else { sequence_string[2] = (n / 10) + '0'; /* first ascii digit */ sequence_string[3] = (n % 10) + '0'; /* second ascii digit */ sequence_string[4] = cursorLeftEscapeSequence[3]; /* 'D' */ sequence_string[5] = '\0'; } SYS_CONSOLE_MESSAGE(sequence_string); } }
/*= CursorRight_N ============================================================== Purpose: Moves the cursor left N characters to the right Inputs: n -- number of characters to move the cursor to the left Note: This sequence only takes a single digit of length, so may need to do the move in steps Returns: none ============================================================================*/ void CursorRight_N(UINT8 n) { INT8 sequence_string[sizeof(cursorRightEscapeSequence) + 2]; /* null and extra digit */ // ASSERT(n <= (strlen(g_ConsoleContext.buf) + CMD_LINE_PROMPT_LENGTH)); if (n > 0u) { SET_CURSOR( GET_CURSOR() + n ); sequence_string[0] = cursorRightEscapeSequence[0]; /* ESC */ sequence_string[1] = cursorRightEscapeSequence[1]; /* '[' */ if (n < 10u) { sequence_string[2] = n + '0'; /* ascii digit */ sequence_string[3] = cursorRightEscapeSequence[3]; /* 'C' */ sequence_string[4] = '\0'; } else { sequence_string[2] = (n / 10) + '0'; /* first ascii digit */ sequence_string[3] = (n % 10) + '0'; /* second ascii digit */ sequence_string[4] = cursorRightEscapeSequence[3]; /* 'C' */ sequence_string[5] = '\0'; } putsUART( (char *) sequence_string); } }
static void EraseEntireLine() { // int i; putrsUART( (ROM FAR char*) eraseEntireLineEscapeSequence); CursorLeft_N(GET_CURSOR()); SET_CURSOR(0); }
/*# @method get_image GdkCursor @brief Returns a GdkPixbuf with the image used to display the cursor. @return a GdkPixbuf representing cursor, or NULL Note that depending on the capabilities of the windowing system and on the cursor, GDK may not be able to obtain the image data. In this case, NULL is returned. */ FALCON_FUNC Cursor::get_image( VMARG ) { NO_ARGS GdkPixbuf* pix = gdk_cursor_get_image( GET_CURSOR( vm->self() ) ); if ( pix ) vm->retval( new Gdk::Pixbuf( vm->findWKI( "GdkPixbuf" )->asClass(), pix ) ); else vm->retnil(); }
/*= Backspace ================================================================ Purpose: Performs a backspace operation on the command line Inputs: none Returns: none ============================================================================*/ static void Backspace(void) { UINT8 num_chars; UINT8 orig_index = GET_CURSOR(); /* if cursor is not at the left-most position */ if (GET_CURSOR() != gCmdLinePromptLength) { /* Null out tmp cmd line */ memset(gTmpCmdLine, 0x00, sizeof(gTmpCmdLine)); /* get characters before the backspace */ num_chars = GET_CURSOR() - gCmdLinePromptLength - 1; strncpy( (char *) gTmpCmdLine, (const char *) g_ConsoleContext.rxBuf, num_chars); /* append characters after the deleted char (if there are any) */ if ( (GET_LEN_RX_CMD_STRING() - 1) > 0u) { strcpy( (char *) &gTmpCmdLine[num_chars], (const char *) &g_ConsoleContext.rxBuf[num_chars + 1]); } EraseEntireLine(); /* leaves g_ConsoleContext.cursorIndex at 0 */ strcpy( (char *) g_ConsoleContext.rxBuf, (const char *) gTmpCmdLine); putrsUART( (ROM FAR char *) gCmdLinePrompt); putsUART( (char *) g_ConsoleContext.rxBuf); SET_CURSOR(gCmdLinePromptLength + GET_LEN_RX_CMD_STRING()); CursorHome(); /* to first character after prompt */ /* move cursor to point of backspace */ CursorRight_N(orig_index - 1 - gCmdLinePromptLength); } }
static void Delete(void) { unsigned int num_chars; unsigned int orig_index = GET_CURSOR(); /* if cursor is not at the end of the line */ if (GET_CURSOR() != GET_LEN_RX_CMD_STRING() + gCmdLinePromptLength) { /* Null out tmp cmd line */ memset(gTmpCmdLine, 0x00, sizeof(gTmpCmdLine)); /* get characters before the deleted key */ num_chars = GET_CURSOR() - gCmdLinePromptLength; strncpy( (char *) gTmpCmdLine, (const char *) g_ConsoleContext.rxBuf, num_chars); /* append characters after the deleted char (if there are any) */ if (strlen( (char *) g_ConsoleContext.rxBuf) - 1 > 0u) { strcpy( (char *) &gTmpCmdLine[num_chars], (const char *) &g_ConsoleContext.rxBuf[num_chars + 1]); } EraseEntireLine(); /* leaves g_ConsoleContext.cursorIndex at 0 */ putrsUART( (ROM FAR char *) gCmdLinePrompt); strcpy( (char *) g_ConsoleContext.rxBuf, (const char *) gTmpCmdLine); putsUART( (char *) g_ConsoleContext.rxBuf ); SET_CURSOR(gCmdLinePromptLength + GET_LEN_RX_CMD_STRING()); CursorHome(); /* to first character after prompt */ /* move cursor to point of delete */ CursorRight_N(orig_index - gCmdLinePromptLength); } }
int Init() { m_poHeadle = NULL; try { if (GET_CURSOR(m_poHeadle, m_poTTConn, m_sConnTns, m_oExp) != 0) { return -1; } } catch(...) { return -1; } return 0; };
/*# @method get_display GdkCursor @brief Returns the display on which the GdkCursor is defined. @return the GdkDisplay associated to cursor */ FALCON_FUNC Cursor::get_display( VMARG ) { NO_ARGS vm->retval( new Gdk::Display( vm->findWKI( "GdkDisplay" )->asClass(), gdk_cursor_get_display( GET_CURSOR( vm->self() ) ) ) ); }
/*= InsertCharacter ========================================================= Purpose: Inserts and echoes an printable character into the command line at the cursor location. Inputs: c -- char to insert Returns: none ============================================================================*/ static void InsertCharacter(INT8 c) { UINT8 len; UINT8 i; UINT8 orig_cursor_index = GET_CURSOR(); UINT8 count; /* throw away characters if exceeded cmd line length */ if (GET_LEN_RX_CMD_STRING() >= sizeof(g_ConsoleContext.rxBuf)-1) { return; } len = GET_LEN_RX_CMD_STRING() + gCmdLinePromptLength; /* if inserting a character at end of cmd line */ if (GET_CURSOR() == len) { g_ConsoleContext.rxBuf[GET_CURSOR() - gCmdLinePromptLength] = c; SET_CURSOR(GET_CURSOR() + 1); EchoCharacter(c); } /* inserting a character somewhere before the end of command line */ else { /* Null out tmp cmd line */ memset(gTmpCmdLine, 0x00, sizeof(gTmpCmdLine)); /* copy up to the point of insertion */ strncpy( (char *) gTmpCmdLine, (const char *) g_ConsoleContext.rxBuf, GET_CURSOR() - gCmdLinePromptLength); /* insert the new character */ gTmpCmdLine[GET_CURSOR() - gCmdLinePromptLength] = c; /* copy the chars after the new character */ strncpy( (char *) &gTmpCmdLine[GET_CURSOR() - gCmdLinePromptLength + 1], (const char *) &g_ConsoleContext.rxBuf[GET_CURSOR() - gCmdLinePromptLength], len - GET_CURSOR()); /* put the first part of new string in the cmd line buffer */ strcpy( (char *) g_ConsoleContext.rxBuf, (const char *) gTmpCmdLine); /* erase entire line, put the cursor at index 0 */ EraseEntireLine(); /* output the prompt */ putrsUART( (ROM FAR char *) gCmdLinePrompt); /* Output the updated command line */ putsUART( (char *) &g_ConsoleContext.rxBuf[0]); /* move the cursor to the next insert location */ count = (len + 1) - orig_cursor_index - 1; for (i = 0; i < count; ++i) { putrsUART( (ROM FAR char *) cursorLeftEscapeSequence); } SET_CURSOR(orig_cursor_index + 1); } }