Beispiel #1
0
BOOL FAR PASCAL OpenHook(HWND hwnd, UINT wm, WPARAM wParam, LPARAM lParam)
	{
	switch (wm)
		{
#ifndef AUTOSUBCLAS
	// NOTNEEDED because we call Ctl3dAutoSubclass
#ifdef WIN32
    case WM_CTLCOLORMSGBOX:
    case WM_CTLCOLOREDIT:
    case WM_CTLCOLORLISTBOX:
    case WM_CTLCOLORBTN:
    case WM_CTLCOLORDLG:
    case WM_CTLCOLORSCROLLBAR:
    case WM_CTLCOLORSTATIC:
#else
    case WM_CTLCOLOR:
#endif // WIN32
        return (BOOL) Ctl3dCtlColorEx(wm, wParam, lParam);
#endif
	case WM_INITDIALOG:
		// We must call this to subclass the directory listbox even
		// if the app calls Ctl3dAutoSubclass (commdlg bug)
		Ctl3dSubclassDlg(hwnd, CTL3D_ALL);
		break;
		}
	return FALSE;
	}
Beispiel #2
0
HBRUSH _DLLFAR _CB_Ctl3dCtlColorEx(UINT wm, WPARAM wp, LPARAM lp )
{
  #if 0
    return( Ctl3dCtlColorEx( wm, wp, lp ) );
  #else
    return( NULL );
  #endif
}
Beispiel #3
0
BOOL FAR PASCAL DialogProc(HWND hdlg, UINT wm, WPARAM wParam, LPARAM lParam)
	{
	BOOL fResult;
	void FileOpen();

	switch(wm)
		{
	default:
		return FALSE;
	case WM_COMMAND:
		if(wParam == IDOK)
			{
			EndDialog(hdlg, fResult);
			}
		else if (wParam == 1000)
			{
            MessageBox(hdlg, TEXT( "asdf" ),TEXT( "asdf" ), MB_OK);
			FileOpen(hdlg);
			}
		else
			{
			HWND hwndT;

			hwndT = GetDlgItem(hdlg, wParam-1000);
//			hwndT = GetDlgItem(hdlg, wParam);
			if (hwndT != NULL)
				{
//				ShowWindow(hwndT, IsWindowVisible(hwndT) ? SW_HIDE : SW_SHOW);//
				EnableWindow(hwndT, !IsWindowEnabled(hwndT));
				}
			}
		break;
#ifndef AUTOSUBCLASS
	// NOTNEEDED because we call Ctl3dAutoSubclass
#ifdef WIN32
    case WM_CTLCOLORMSGBOX:
    case WM_CTLCOLOREDIT:
    case WM_CTLCOLORLISTBOX:
    case WM_CTLCOLORBTN:
    case WM_CTLCOLORDLG:
    case WM_CTLCOLORSCROLLBAR:
    case WM_CTLCOLORSTATIC:
#else
    case WM_CTLCOLOR:
#endif // WIN32
        return (BOOL) Ctl3dCtlColorEx(wm, wParam, lParam);
	case WM_INITDIALOG:
		fResult = Ctl3dEnabled();
		fResult = Ctl3dSubclassDlg(hdlg, CTL3D_ALL);
		break;
	case WM_SYSCOLORCHANGE:
		Ctl3dColorChange();
#endif
		}
	return TRUE;
	}
Beispiel #4
0
BOOL EXPORT MultiSelectionDlg(HWND hWnd, unsigned msg, 
                                  WORD wParam, long lParam)
{
#ifdef INPUTFORM
    switch (msg) {
      case WM_INITDIALOG:
#ifdef CTL3D
          if (Kpp3dCtrls())
              Ctl3dSubclassDlg(hWnd, CTL3D_ALL);
#endif          
          SetProp(hWnd, (LPSTR) piList, idMultiInputList);
          LoadMultiSelectionDlg(hWnd, idMultiInputList, idMultiTitle);
          KppInitDialogFont(hWnd, TRUE);
          SendMessage(GetDlgItem (hWnd, ID_LISTBOX), LB_SETSEL, 1, 0L);
          idMultiInputList = NULLID;
          KppCenterPopupWindow(hWnd);
          return TRUE;

#ifdef CTL3D
      case WM_CTLCOLOR:
          if (Kpp3dCtrls())
              return Ctl3dCtlColorEx(hWnd, wParam, lParam);
          break;
#endif

      case WM_COMMAND:
          switch (wParam) {
            case IDOK:
            {
                LISTID idInputList = GetProp(hWnd, (LPSTR) piList);
                LISTID idList = SaveMultiSelectionDlg(hWnd, idInputList);
              
                RemoveProp(hWnd, (LPSTR) piList);
                EndDialog(hWnd, idList);
                return TRUE;
            }

            case IDCANCEL:
                RemoveProp(hWnd, (LPSTR) piList);
                EndDialog(hWnd, NULLID);
                return TRUE;

            default:
                break;      
          }
          break;
          
      default:
          return FALSE;
    }
#endif

    return TRUE;
}
Beispiel #5
0
BOOL EXPORT LBMenuSelectionDlg(HWND hWnd, unsigned msg, 
                                   WORD wParam, long lParam)
{
#ifdef INPUTFORM
    switch (msg) {
      case WM_INITDIALOG:
#ifdef CTL3D
          if (Kpp3dCtrls())
              Ctl3dSubclassDlg(hWnd, CTL3D_ALL);
#endif          
          LoadMultiSelectionDlg(hWnd, idLBMenuInputList, idLBMenuTitle);
          KppInitDialogFont(hWnd, TRUE);
          SendMessage(GetDlgItem(hWnd, ID_LISTBOX), LB_SETCURSEL, 0, 0L);
          KppCenterPopupWindow(hWnd);
          if (wPosSet)
              SetWindowPos(hWnd, NULL, sMenuXPos, sMenuYPos, 0, 0,
                           SWP_NOSIZE | SWP_NOZORDER);
          return TRUE;

#ifdef CTL3D
      case WM_CTLCOLOR:
          if (Kpp3dCtrls())
              return Ctl3dCtlColorEx(hWnd, wParam, lParam);
          break;
#endif

      case WM_COMMAND:
        switch (wParam) {
            case ID_LISTBOX:
                if (HIWORD(lParam) != LBN_DBLCLK) 
                    return TRUE;
            case IDOK:
                EndDialog(hWnd, SaveLBMenu(hWnd));
                return TRUE;

            case IDCANCEL:
                EndDialog(hWnd, NULLID);
                return TRUE;

            default:
                break;   
        }
        break;

      default:
          return FALSE;
    }

#endif
    return TRUE;
}
Beispiel #6
0
BOOL EXPORT SearchObjDlg(HWND hWnd, WORD msg, WORD wParam, long lParam)
{
    switch (msg) {
      case WM_INITDIALOG:
          KppInitDialogFont(hWnd, TRUE);
#ifdef CTL3D
          if (Kpp3dCtrls())
              Ctl3dSubclassDlg(hWnd, CTL3D_ALL);
#endif
          hFind = GetDlgItem(hWnd, IDD_FINDTEXT);
          hName = GetDlgItem(hWnd, IDD_NAME);
          lpOrigEditProc = (FARPROC) GetWindowLong(hFind, GWL_WNDPROC);
          SetWindowLong(hFind, GWL_WNDPROC, (long) (FARPROC) FindObjProc);
          SetWindowLong(hName, GWL_WNDPROC, (long) (FARPROC) FindObjProc);
          SendMessage(hFind, EM_LIMITTEXT, NAME_LEN, 0L);
          SendMessage(hName, EM_LIMITTEXT, NAME_LEN, 0L);
          cCount = 0;
          SearchedObject = NULLID;
          SetFocus(hFind);
          break;
          
#ifdef CTL3D
      case WM_CTLCOLOR:
          if (Kpp3dCtrls())
              return Ctl3dCtlColorEx(hWnd, wParam, lParam);
          break;
#endif

      case WM_COMMAND:
          switch (wParam) {
            case IDOK:
                EndDialog(hWnd, TRUE);
                return TRUE;
            case IDCANCEL:
                SearchedObject = NULLID;
                EndDialog(hWnd, FALSE);
                return TRUE;
          }
    }
    
    return FALSE;
}
Beispiel #7
0
BOOL W_CALLBACK KappaEditObjectDlg(HWND hWndDlg, UINT message,
                                   WPARAM wParam, LPARAM lParam)
{
    short sRes, bRet;
    GLOBALHANDLE hObj = NULL;

    switch (message) {
    case WM_INITDIALOG:
        KppInitDialogFont(hWndDlg, TRUE);
#ifdef CTL3D
        if (Kpp3dCtrls())
            Ctl3dSubclassDlg(hWndDlg, CTL3D_ALL);
#endif
        InitEditDlg(hWndDlg, OBJECT);
        break;

    case WM_CTLCOLOR:
#ifdef CTL3D
        if (Kpp3dCtrls())
            return Ctl3dCtlColorEx(hWndDlg, wParam, lParam);
#endif
        SetBkColor(wParam, GetSysColor(COLOR_WINDOW));
        return KppGetBrush(FALSE);

    case WM_ACTIVATE:
        if (!wParam || wParam == 2)
            hEditActive = NULL;
        else
            hEditActive = hWndDlg;
        break;

    case WM_LBUTTONDOWN:
        if (hEditActive == hWndDlg)
            EditParent(hWndDlg, lParam);
        else
            hEditActive = hWndDlg;
        break;

    case WM_SETFOCUS:
    {
        ATOM aFocus = AddAtom("Focus");
        HWND hFocus = GetProp(hWndDlg, (LPSTR) aFocus);

        if (hFocus)
        {
            SetFocus(hFocus);
            return TRUE;
        }
    }
    break;

    case WM_INITMENUPOPUP:
#ifdef OS2_COMP
        MenuOptions(hWndDlg, (HMENU) wParam, GetDlgItem(hWndDlg, IDDINFO));
        PrepareDlgSelection(hWndDlg, (HMENU) wParam);
#else
        if (LOWORD(lParam) == 1)
            EditMenuOptions(hWndDlg, GetDlgItem(hWndDlg, IDDINFO));
        else if ((LOWORD(lParam) == 2) || (LOWORD(lParam) == 3))
            PrepareDlgSelection(hWndDlg);
#endif

        break;

    case WM_SIZE:
        if (wParam != SIZEICONIC)
            SetProp(hWndDlg, pIconized, FALSE);
        else
        {
            SetProp(hWndDlg, pIconized, TRUE);
            SendMessage(hWndDlg, WM_PAINT, 0, 0L);
        }
        break;

    case WM_PAINT:
#if WINVER < 0x030a
    case WM_PAINTICON:
#endif
        if (GetProp(hWndDlg, pIconized))
        {
            PAINTSTRUCT ps;
            HDC hDC = BeginPaint(hWndDlg, &ps);
            HBRUSH hBrush =
                CreateSolidBrush(GetSysColor(COLOR_BACKGROUND));
            RECT rect;

            GetClientRect(hWndDlg, &rect);
            SelectObject(hDC, hBrush);
            PatBlt(hDC, 0, 0,
                   rect.right - rect.left, rect.bottom - rect.top,
                   PATCOPY);
            DrawIcon(hDC, 2, 2, objectIcon);
            EndPaint(hWndDlg, &ps);
            DeleteObject(hBrush);
            return TRUE;
        }
        return FALSE;

    case WM_QUERYDRAGICON:
        return objectIcon;

    case WM_COMMAND:
        hObj = GetProp(hWndDlg, (LPSTR) "hObj");
        switch (wParam) {
        /* OPEN EXISTING OBJECT (USER SELECTED) */
        case IDM_OPEN:
        /* OPEN EXISTING OBJECT (FROM ANOTHER FUNCTION) */
        case IDG_AUTOOPEN:
        /* START A NEW OBJECT */
        case IDM_NEW:
            return OpenObjectClassEditor(hWndDlg, OBJECT,
                                         hObj, wParam, lParam);

#ifndef RUNTIME
        case IDM_HELP:
            KppDoWindowHelp(hWndDlg, "e_instance");
            break;
#endif

        case IDG_IMAGE_AUTOOPEN:
        {
            HMENU hMenu;

            /* OPEN EXISTING OBJECT (FROM ANOTHER FUNCTION) */
            bRet = OpenObjectClassEditor(hWndDlg, OBJECT, hObj,
                                         wParam, lParam);
            hMenu = GetMenu(hWndDlg);
            EnableMenuItem(hMenu, IDM_SAVEAS, MF_GRAYED);
            EnableMenuItem(hMenu, IDM_NEW, MF_GRAYED);
            EnableMenuItem(hMenu, IDM_OPEN, MF_GRAYED);

            return bRet;
        }

        case IDM_CUT:
        case IDM_COPY:
        case IDM_PASTE:
        case IDM_CLEAR:
            KpeHandleEditMenu(GetFocus(), wParam);
            if (wParam != IDM_COPY)
                MARK_AS_MODIFIED(hWndDlg);
            break;

        /* SAVE OBJECT */
        case IDM_SAVE:
            EditorSaveItem(hWndDlg, OBJECT, hObj, SAVE);
            break;

        /* SAVE AS */
        case IDM_SAVEAS:
            EditorSaveAs(hWndDlg, OBJECT, hObj, wParam);
            break;

        /* Rename the object or class */
        case IDM_RENAME:
            return RenameObjectClassItem(hWndDlg, OBJECT, hObj);

        /* EXIT IS SELECTED FROM MENU (save and proceed with ABORT) */
        case IDM_EXIT:
        case IDCANCEL:
            sRes = ExitObjectClassEditor(hWndDlg, OBJECT, hObj);
            if (sRes == TRUE)
                DestroyWindow(hWndDlg);
            return TRUE;

        case IDDSLOTS:
            if (HIWORD(lParam) != LBN_DBLCLK)
                break;
            return ModifyMethSlot(hWndDlg, SLOT, hObj, IDM_EDIT, OBJECT);

        case IDM_IMAGE_EDIT:        /* from ^E accelerator */
            SendMessage(GetFocus(), WM_CHAR, 'E' - 0x40, 0L);
            return TRUE;

        case IDM_OPTIONSLAYOUTMODE: /* from ^L accelerator */
            SendMessage(GetFocus(), WM_CHAR, 'L' - 0x40, 0L);
            return TRUE;

        case IDM_WIDGETCUSTOM:      /* from ^G accelerator */
            SendMessage(GetFocus(), WM_CHAR, 'G' - 0x40, 0L);
            return TRUE;

        case IDM_EDITSLOT:
            return ModifyMethSlot(hWndDlg, SLOT, hObj,
                                  IDM_EDIT, OBJECT);

        case IDM_DELETESLOT:
            return ModifyMethSlot(hWndDlg, SLOT, hObj,
                                  IDM_DELETE, OBJECT);

        case IDM_RENAMESLOT:
            return ModifyMethSlot(hWndDlg, SLOT, hObj,
                                  IDM_RENAME, OBJECT);

        case IDM_MAKELOCALSLOT:
            return ModifyMethSlot(hWndDlg, SLOT, hObj,
                                  IDM_MAKELOCAL, OBJECT);

        case IDM_EDITMETHODOWNER:
            return ModifyMethSlot(hWndDlg, METHOD, hObj,
                                  IDM_EDITOWNER, OBJECT);

        case IDM_EDITSLOTOWNER:
            return ModifyMethSlot(hWndDlg, SLOT, hObj,
                                  IDM_EDITOWNER, OBJECT);

        case IDM_NEWSLOT:
            if (AddNewSlotMethod(hWndDlg, OBJECT, hObj, SLOT) == TRUE)
                MARK_AS_MODIFIED(hWndDlg);
            break;

        case IDG_CLOSESLOT:
            return CloseMethSlot(hWndDlg, SLOT, lParam);

        case IDDMETHODS:
            if (HIWORD(lParam) != LBN_DBLCLK)
                break;
            return ModifyMethSlot(hWndDlg, METHOD, hObj,
                                  IDM_EDIT, OBJECT);

        case IDM_EDITMETHOD:
            return ModifyMethSlot(hWndDlg, METHOD, hObj,
                                  IDM_EDIT, OBJECT);

        case IDM_DELETEMETHOD:
            return ModifyMethSlot(hWndDlg, METHOD, hObj,
                                  IDM_DELETE, OBJECT);

        case IDM_RENAMEMETHOD:
            return ModifyMethSlot(hWndDlg, METHOD, hObj,
                                  IDM_RENAME, OBJECT);

        case IDM_MAKELOCALMETHOD:
            return ModifyMethSlot(hWndDlg, METHOD, hObj, IDM_MAKELOCAL, OBJECT);

        case IDM_NEWMETHOD:
            if (AddNewSlotMethod(hWndDlg, OBJECT, hObj, METHOD) == TRUE)
                MARK_AS_MODIFIED(hWndDlg);        /* SK */
            break;

        /* A METHOD EDITOR IS CLOSING */
        case IDG_CLOSEMETHOD:
            return CloseMethSlot(hWndDlg, METHOD, lParam);

        case IDDINFO:
            if (HIWORD(lParam) == EN_CHANGE)
                MARK_AS_MODIFIED(hWndDlg);
            break;

        default:
            return FALSE;
        }
        break;

    default:
        return FALSE;
    }

    return TRUE;
}
/*****
* Main window dialog box procedure
*****/
long FAR PASCAL _export
WndProc(HWND hwnd, UINT message, UINT wParam, LONG lParam)
{
	HBRUSH hbrush;

	switch (message)
	{
		case WM_CREATE:
			file_sel_changed = 0;
			/* attach keyboard interface */
			if((myhookproc = SetWindowsHookEx(WH_KEYBOARD,
				(HOOKPROC)KeyboardProc, hInst,
				GetCurrentTask())) == NULL)
				ErrHandler(NULL, R_ERROR, RB_OK1, "Winfflow "
					"Error: failed to set keyboard hook.\n"
					"Keyboard interface not installed.");
			return FALSE;
		/* following four cases ctl3d specific */
		case WM_SYSCOLORCHANGE:
			Ctl3dColorChange();
			return FALSE;
		case WM_SETTEXT:
		case WM_NCPAINT:
		case WM_NCACTIVATE:
			SetWindowLong(hwnd, DWL_MSGRESULT,
				Ctl3dDlgFramePaint(hwnd, message, wParam, 
				lParam));
			return TRUE;
		/*
		* paint window background with a brush provided by the response
		* to the WM_CTLCOLOR message
		*/
		case WM_ERASEBKGND:
		{
			RECT lprc;
			HDC hdc = (HDC)wParam;

			if(hwnd != hWndMain)
				return TRUE;
			if(!background_brush)
				return TRUE;
			UnrealizeObject(background_brush);
			GetClientRect(hwnd, &lprc);
			SetBrushOrg(hdc, 0, 0);
			SelectObject(hdc, background_brush);
			FillRect(hdc, &lprc, background_brush);
			return TRUE;
		}
		case WM_SIZE:
			switch(wParam)
			{
				case SIZE_MAXIMIZED:
				case SIZE_RESTORED:
					if(!block_resize)
						DoResize(hwnd, 0);
					return FALSE;
				default:
					break;
			}
			break;
		case WM_COMMAND:
		switch(GET_COMMAND_ID)
		{
			case IDC_MAIN_ABOUT:
				DisplayDialog(hwnd, hInst,WINFFLOW_ABOUT_DIALOG,
					AboutProc);
				break;
			/* add files to the listbox */
			case IDC_MAIN_ADD:
				get_fortran_files(hwnd);
				break;

			/* double click will edit selected file */
			case IDC_MAIN_LISTBOX:
				if(GET_COMMAND_CMD == LBN_DBLCLK)
					get_selected_file(hwnd, 
						IDC_MAIN_LISTBOX);
				break;

			/* remove/edit selected file */
			case IDC_MAIN_EDIT:
			case IDC_MAIN_REMOVE:
				get_selected_file(hwnd, GET_COMMAND_ID);
				break;
			case IDC_MAIN_REMOVE_ALL:
				SendDlgItemMessage(hwnd, IDC_MAIN_LISTBOX, 
					LB_RESETCONTENT, 0, 0L);
				destroy_filelist();
				break;
			/* settings */
			case IDC_MAIN_SETTINGS:
				DisplayDialog(hwnd, hInst,
					WINFFLOW_SETTINGS_DIALOG,
					(FARPROC)SettingsProc);
				break;

			/* scan the files */
			case IDOK:
				/*
				* scan the files when the selection has changed,
				* there is no current flowgraph or when the 
				* previous scan has been aborted
				*/
				if(file_sel_changed || flow == NULL ||
					yylex_abort)
				{
					/* pick up files */
					if(!get_files_to_scan(hwnd))
						break;
					generate_flowgraph();
				}
				/* hide main window */
				ShowWindow(hWndMain, SW_HIDE);
				/* display selector dialog box */
				DisplayDialog(hwnd, hInst,
					WINFFLOW_OUTPUTSELECTOR_DIALOG,
					(FARPROC)SelectorProc);
				/* display main window again */
				ShowWindow(hWndMain, SW_RESTORE);
				break;
			case IDCANCEL:
				/* save the filelist */
				save_ini_file_data(hwnd);
				SendMessage(hWndMain, WM_CLOSE, 0, 0L);
				break;
			case IDHELP:
				WinHelp(hWndMain, "winfflow.hlp", 
					HELP_CONTEXT, WINFFLOW_MAIN_DIALOG);
				break;
		} return(FALSE);
		case WM_SYSCOMMAND:
			if(GET_COMMAND_ID == SC_CLOSE)	/* Get the close item */
			{
				SendMessage(hWndMain, WM_CLOSE, 0, 0L);
				return FALSE;
			}
			break;
		case WM_CLOSE:
			UnregisterResize(hwnd);
			DestroyWindow(hwnd);
			return FALSE;
		case WM_DESTROY:
			PostQuitMessage (0) ;
			return FALSE;
/* Ctl3d specific code */
#ifdef WIN32
		case WM_CTLCOLORBTN:
		case WM_CTLCOLORDLG:
		case WM_CTLCOLOREDIT:
		case WM_CTLCOLORLISTBOX:
		case WM_CTLCOLORMSGBOX:
		case WM_CTLCOLORSCROLLBAR:
		case WM_CTLCOLORSTATIC:
#else
		case WM_CTLCOLOR:
#endif
			hbrush = Ctl3dCtlColorEx(message, wParam, lParam);
			if (hbrush != (HBRUSH) FALSE)
			{
				/* save this brush */
				background_brush = hbrush;
				return hbrush;
			}
			/* fall through */
		default:
			break;
	 }
	 return (DefWindowProc (hwnd, message, wParam, lParam));
}