Exemplo n.º 1
0
void ToggleEditorMode(HWND hwndHV)
{
    UINT nMode;

    nMode   = HexView_GetEditMode(hwndHV);
    //nMode	= (nMode + 1) % 2;//3;

    if(nMode == HVMODE_INSERT)
        nMode = HVMODE_OVERWRITE;
    else
        nMode = HVMODE_INSERT;


    HexView_SetEditMode(hwndHV, nMode);
    nMode   = HexView_GetEditMode(hwndHV);
}
Exemplo n.º 2
0
void InitHexPreview(HWND hwndHV)
{
	char sample_data[] = "sample data. selected data";
	char modify_data[] = "modified bytes";

	HexView_InitBuf(hwndHV, sample_data, sizeof(sample_data));
	HexView_SetEditMode(hwndHV, HVMODE_INSERT);
	HexView_SetData(hwndHV, 13, (BYTE *)modify_data, sizeof(modify_data));

	SendMessage(hwndHV, WM_SETFONT, (WPARAM)GetStockObject(ANSI_FIXED_FONT), 0);

	SetWindowLong(hwndHV, GWL_EXSTYLE, WS_EX_CLIENTEDGE|WS_EX_CONTROLPARENT);

	HexView_SetStyle(hwndHV, -1, HVS_DISABLE_UNDO);
	//HexView_SetEditMode(hwndHV, HVMODE_READONLY);
	HexView_SetLineLen(hwndHV, 8);

	HexView_SetAddressOffset(hwndHV, 0x12345);

	HexView_SetPadding(hwndHV, 2, 1);
}
Exemplo n.º 3
0
LONG StatusBar_DropDownTB(MAINWND *mainWnd, HWND hwndHV, NMTOOLBAR *nmtb)
{
    RECT rect = nmtb->rcButton;
    HMENU hMenu, hPopup;
    UINT mode, cmdId;

    MapWindowPoints(nmtb->hdr.hwndFrom, 0, (POINT *)&rect, 2);

    switch(nmtb->hdr.idFrom)
    {
    case IDM_STATUSBAR_CURSORPOS:
        hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_MENU3));
        hPopup = GetSubMenu(hMenu, 0);

        MenuCheckMark(hPopup, IDM_STATUS_HEX, g_fStatusHexCursor);
        MenuCheckMark(hPopup, IDM_STATUS_DEC, !g_fStatusHexCursor);

        break;

    case IDM_STATUSBAR_VALUE:
        hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_MENU2));
        hPopup = GetSubMenu(hMenu, 0);

        MenuCheckMark(hPopup, IDM_VALUE_SIGNED, g_fStatusSignedValue);
        MenuCheckMark(hPopup, IDM_VALUE_ENDIAN, g_fStatusBigEndian);
        MenuCheckMark(hPopup, IDM_VALUE_HEX,    g_fStatusHexValue);
        CheckMenuRadioItem(hPopup, IDM_VALUE_BYTE, IDM_VALUE_DOUBLE, g_nStatusValueType, MF_BYCOMMAND);

        break;

    case IDM_STATUSBAR_SIZE:
        hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_MENU3));
        hPopup = GetSubMenu(hMenu, 0);

        MenuCheckMark(hPopup, IDM_STATUS_HEX, g_fStatusHexSize);
        MenuCheckMark(hPopup, IDM_STATUS_DEC, !g_fStatusHexSize);

        break;

    case IDM_STATUSBAR_MODE:
        hMenu = LoadMenu(g_hInstance, MAKEINTRESOURCE(IDR_MENU4));
        hPopup = GetSubMenu(hMenu, 0);

        mode = HexView_GetEditMode(hwndHV);

        MenuCheckMark(hPopup, IDM_STATUSBAR_INSERT,    mode == HVMODE_INSERT);
        MenuCheckMark(hPopup, IDM_STATUSBAR_OVERWRITE, mode == HVMODE_OVERWRITE);
        MenuCheckMark(hPopup, IDM_STATUSBAR_READONLY,  mode == HVMODE_READONLY);

        break;
    }

    //CheckMenuItem(hMenu, IDM_


    cmdId = TrackPopupMenu(hPopup, TPM_RETURNCMD|TPM_RIGHTALIGN|TPM_BOTTOMALIGN, rect.right, rect.top, 0, g_hwndMain, 0);

    switch(cmdId)
    {
    case IDM_STATUSBAR_INSERT:
        HexView_SetEditMode(hwndHV, HVMODE_INSERT);
        break;

    case IDM_STATUSBAR_OVERWRITE:
        HexView_SetEditMode(hwndHV, HVMODE_OVERWRITE);
        break;

    case IDM_STATUSBAR_READONLY:
        HexView_SetEditMode(hwndHV, HVMODE_READONLY);
        break;

    case IDM_STATUS_HEX:
        if(nmtb->hdr.idFrom == IDM_STATUSBAR_SIZE)
            g_fStatusHexSize = TRUE;
        else
            g_fStatusHexCursor = TRUE;
        break;

    case IDM_STATUS_DEC:
        if(nmtb->hdr.idFrom == IDM_STATUSBAR_SIZE)
            g_fStatusHexSize = FALSE;
        else
            g_fStatusHexCursor = FALSE;
        break;

    case IDM_VALUE_HEX:
        g_fStatusHexValue = !g_fStatusHexValue;
        break;

    case IDM_VALUE_ENDIAN:
        g_fStatusBigEndian = !g_fStatusBigEndian;
        break;

    case IDM_VALUE_SIGNED:
        g_fStatusSignedValue = !g_fStatusSignedValue;
        break;

    case IDM_VALUE_BYTE:
    case IDM_VALUE_WORD:
    case IDM_VALUE_DWORD:
    case IDM_VALUE_QWORD:
    case IDM_VALUE_FLOAT:
    case IDM_VALUE_DOUBLE:
        g_nStatusValueType = cmdId;

        break;
    }

    DestroyMenu(hMenu);

    UpdateStatusBarText(mainWnd->hwndStatusBar, hwndHV);

    if(nmtb->hdr.idFrom == IDM_VALUE_SHOW)
    {

    }

    return 0;
}