Changeset 13
- Timestamp:
- 12/06/07 20:42:15 (9 months ago)
- Files:
-
- trunk/win32/dfl/base.d (modified) (1 diff)
- trunk/win32/dfl/control.d (modified) (7 diffs)
- trunk/win32/dfl/form.d (modified) (1 diff)
- trunk/win32/dfl/internal/winapi.d (modified) (2 diffs)
- trunk/win32/dfl/menu.d (modified) (3 diffs)
- trunk/win32/dfl/textbox.d (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/win32/dfl/base.d
r12 r13 852 852 853 853 /// 854 class KeyPressEventArgs: KeyEventArgs 855 { 856 /// 857 this(dchar ch) 858 { 859 this(ch, (ch >= 'A' && ch <= 'Z') ? Keys.SHIFT : Keys.NONE); 860 } 861 862 /// ditto 863 this(dchar ch, Keys modifiers) 864 in 865 { 866 assert((modifiers & Keys.MODIFIERS) == modifiers, "modifiers parameter can only contain modifiers"); 867 } 868 body 869 { 870 _keych = ch; 871 872 int vk; 873 if(dfl.internal.utf.useUnicode) 874 vk = 0xFF & VkKeyScanW(ch); 875 else 876 vk = 0xFF & VkKeyScanA(cast(char)ch); 877 878 super(cast(Keys)(vk | modifiers)); 879 } 880 881 882 /// 883 final dchar keyChar() // getter 884 { 885 return _keych; 886 } 887 888 889 private: 890 dchar _keych; 891 } 892 893 894 /// 854 895 class MouseEventArgs: EventArgs 855 896 { trunk/win32/dfl/control.d
r12 r13 3879 3879 3880 3880 /// 3881 protected void onKeyPress(Key EventArgs kea)3881 protected void onKeyPress(KeyPressEventArgs kea) 3882 3882 { 3883 3883 keyPress(this, kea); … … 4102 4102 protected void onHandleCreated(EventArgs ea) 4103 4103 { 4104 if(!(cbits & CBits.VSTYLE)) 4105 _disableVisualStyle(); 4106 4104 4107 Font fon; 4105 4108 fon = font; … … 5563 5566 Event!(Control, KeyEventArgs) keyDown; /// 5564 5567 //KeyEventHandler keyPress; 5565 Event!(Control, Key EventArgs) keyPress; ///5568 Event!(Control, KeyPressEventArgs) keyPress; /// 5566 5569 //KeyEventHandler keyUp; 5567 5570 Event!(Control, KeyEventArgs) keyUp; /// … … 5791 5794 /+ 5792 5795 // /// 5796 // I don't think this is reliable. 5793 5797 final bool hasVisualStyle() // getter 5794 5798 { … … 5809 5813 } 5810 5814 +/ 5815 5816 5817 package final void _disableVisualStyle() 5818 { 5819 assert(isHandleCreated); 5820 5821 HMODULE hmuxt; 5822 hmuxt = GetModuleHandleA("uxtheme.dll"); 5823 if(hmuxt) 5824 { 5825 auto setWinTheme = cast(typeof(&SetWindowTheme))GetProcAddress(hmuxt, "SetWindowTheme"); 5826 if(setWinTheme) 5827 { 5828 setWinTheme(hwnd, " "w.ptr, " "w.ptr); // Clear the theme. 5829 } 5830 } 5831 } 5832 5833 5834 /// 5835 public final void enableVisualStyle(bool byes = true) 5836 { 5837 if(byes) 5838 { 5839 if(cbits & CBits.VSTYLE) 5840 return; 5841 cbits |= CBits.VSTYLE; 5842 5843 if(isHandleCreated) 5844 { 5845 _crecreate(); 5846 } 5847 } 5848 else 5849 { 5850 if(!(cbits & CBits.VSTYLE)) 5851 return; 5852 cbits &= ~CBits.VSTYLE; 5853 5854 if(isHandleCreated) 5855 _disableVisualStyle(); 5856 } 5857 } 5811 5858 5812 5859 … … 6443 6490 case WM_CHAR: 6444 6491 { 6445 int vk; 6446 if(dfl.internal.utf.useUnicode) 6447 vk = 0xFF & VkKeyScanW(cast(wchar)msg.wParam); 6448 else 6449 vk = 0xFF & VkKeyScanA(cast(char)msg.wParam); 6450 scope KeyEventArgs kea = new KeyEventArgs(cast(Keys)(vk | modifierKeys)); 6451 onKeyPress(kea); 6452 if(kea.handled) 6492 scope KeyPressEventArgs kpea = new KeyPressEventArgs(cast(dchar)msg.wParam, modifierKeys); 6493 onKeyPress(kpea); 6494 if(kpea.handled) 6453 6495 return true; 6454 6496 } … … 6632 6674 RECREATING = 0x100000, 6633 6675 HAS_LAYOUT = 0x200000, 6676 VSTYLE = 0x400000, // If not forced off. 6634 6677 } 6635 6678 6636 6679 //CBits cbits = CBits.ALLOW_LAYOUT; 6637 6680 //CBits cbits = CBits.NONE; 6638 CBits cbits = CBits.VISIBLE ;6681 CBits cbits = CBits.VISIBLE | CBits.VSTYLE; 6639 6682 6640 6683 trunk/win32/dfl/form.d
r12 r13 2833 2833 2834 2834 2835 /+2836 protected override void onKeyPress(KeyEventArgs ea)2837 {2838 super.onKeyPress(ea);2839 2840 if(!ea.handled)2841 {2842 if(ea.keyCode == Keys.ESCAPE)2843 {2844 if(cancelBtn)2845 {2846 cancelBtn.performClick();2847 ea.handled = true;2848 }2849 }2850 }2851 }2852 +/2853 2854 2855 2835 package final bool _dlgescape() 2856 2836 { trunk/win32/dfl/internal/winapi.d
r12 r13 62 62 63 63 alias ulong DWORDLONG; 64 65 66 alias HRESULT THEMEAPI; 64 67 65 68 … … 2767 2770 BOOL PatBlt(HDC hdc, int nXLeft, int nYLeft, int nWidth, int nHeight, DWORD dwRop); 2768 2771 HTHEME GetWindowTheme(HWND hWnd); 2772 THEMEAPI SetWindowTheme(HWND hwnd, LPCWSTR pszSubAppName, LPCWSTR pszSubIdList); 2769 2773 int SetScrollInfo(HWND hwnd, int fnBar, LPSCROLLINFO lpsi, BOOL fRedraw); 2770 2774 BOOL GetScrollInfo(HWND hwnd, int fnBar, LPSCROLLINFO lpsi); trunk/win32/dfl/menu.d
r7 r13 188 188 189 189 miparent = cast(MenuItem)mparent; 190 if(miparent .parent() && miparent.parent.hmenu)190 if(miparent && miparent.hmenu) 191 191 { 192 192 MENUITEMINFOA miiPopup; … … 390 390 final void radioCheck(bool byes) // setter 391 391 { 392 auto par = parent; 393 auto pidx = index; 394 if(par) 395 par.menuItems._removing(pidx, this); 396 392 397 if(byes) 393 _type(_type() | MFT_RADIOCHECK); 394 else 395 _type(_type() & ~MFT_RADIOCHECK); 398 //_type(_type() | MFT_RADIOCHECK); 399 fType |= MFT_RADIOCHECK; 400 else 401 //_type(_type() & ~MFT_RADIOCHECK); 402 fType &= ~MFT_RADIOCHECK; 403 404 if(par) 405 par.menuItems._added(pidx, this); 396 406 } 397 407 … … 804 814 805 815 806 p rivate:816 package: 807 817 808 818 Menu _owner; trunk/win32/dfl/textbox.d
r5 r13 850 850 msg.result = dfl.internal.utf.callWindowProc(textBoxPrevWndProc, msg.hWnd, msg.msg, msg.wParam, msg.lParam); 851 851 } 852 853 854 /+855 protected override void onKeyPress(KeyEventArgs ea)856 {857 //super.onKeyPress(ea);858 //if(!ea.handled)859 {860 if(ea.keyCode == Keys.ESCAPE)861 {862 /+863 Form cp;864 cp = cast(Form)topLevelControl();865 if(cp)866 cp._keypressed(ea);867 +/868 ea.handled = true;869 // Note: can't let this go unhandled or Windows will close the parent.870 return;871 }872 }873 super.onKeyPress(ea);874 }875 +/876 852 877 853
