Changeset 26757 for lang/cplusplus

Show
Ignore:
Timestamp:
12/15/08 16:21:11 (6 years ago)
Author:
saturday06
Message:

いろいろさまざま

Location:
lang/cplusplus/i3/trunk
Files:
11 modified

Legend:

Unmodified
Added
Removed
  • lang/cplusplus/i3/trunk/configure.ac

    r26336 r26757  
    8787CFLAGS_ORIG="$CFLAGS" 
    8888CFLAGS="$CFLAGS $LIBINTL" 
    89 AC_CHECK_FUNC([wbindtextdomain]) 
     89AC_CHECK_FUNCS([wbindtextdomain]) 
    9090CFLAGS="$CFLAGS_ORIG" 
    9191 
  • lang/cplusplus/i3/trunk/src/Common.h

    r25972 r26757  
    1414#  define PACKAGE_NAME "i3" 
    1515#  define PACKAGE_VERSION "1.0" 
    16 #  define ENABLE_NLS 1 
     16//#  define ENABLE_NLS 1 
    1717#  define ICONV_CONST const 
    1818#endif 
     
    3333// mol 
    3434#include <mol/Mol.h> 
    35 #include <mol/Module.h> 
    36 #include <mol/Thread.h> 
    3735 
    3836namespace i3 
  • lang/cplusplus/i3/trunk/src/CompletionWindow.h

    r18130 r26757  
    44 
    55#pragma once 
    6 #include "Common.h" 
    76#include "CompletionWindowCore.h" 
    87 
  • lang/cplusplus/i3/trunk/src/ConfigFile.cpp

    r26335 r26757  
    11#include <PrecompiledHeaders.h> 
    22#include "Common.h" 
    3 #include "Mediator.h" 
    43#include "ConfigFile.h" 
    54 
  • lang/cplusplus/i3/trunk/src/InputWindow.h

    r18130 r26757  
    11#pragma once 
    22 
     3#include <mol/GuiModule.h> 
    34#include "Common.h" 
    45#include "InputWindowCore.h" 
  • lang/cplusplus/i3/trunk/src/OutputWindow.h

    r18130 r26757  
    44 
    55#pragma once 
     6#include <mol/GuiModule.h> 
    67#include "Common.h" 
    78 
  • lang/cplusplus/i3/trunk/src/ShellManager.h

    r25984 r26757  
    44 
    55#pragma once 
     6#include <mol/Module.h> 
    67#include "Common.h" 
    7 #include <mol/Module.h> 
    88 
    99namespace i3 
  • lang/cplusplus/i3/trunk/src/gui-windows/CompletionWindowCore.h

    r18130 r26757  
    44 
    55#pragma once 
     6#include <mol/GuiModule.h> 
    67#include "Common.h" 
    7 #include "CompletionWindowCore.h" 
    88 
    99namespace i3 
  • lang/cplusplus/i3/trunk/src/gui-windows/InputWindowCore.cpp

    r25984 r26757  
    99 
    1010template <> 
    11 InputWindowCore<InputWindow>::InputWindowCore(Mediator& mediator) : mediator(mediator), hEdit(NULL) 
     11InputWindowCore<InputWindow>::InputWindowCore(Mediator& mediator) : mediator(mediator), hEdit(NULL), riched32_dll(NULL) 
    1212{ 
    1313} 
     
    3030    MessageBox(NULL, _T("bye"), _T("NOT TRANSLATED 645678241758"), MB_OK); 
    3131 
     32    if (riched32_dll) { 
     33        FreeLibrary(riched32_dll); 
     34    } 
     35 
    3236    //ofstream o7("nul"); 
    3337    //ofstream o8("nul"); 
     
    4953    } 
    5054 
    51     LoadLibrary(_T("RICHED32.DLL")); 
    52     //LoadLibrary(_T("Riched20.dll")); // required? 
     55    riched32_dll = LoadLibrary(_T("riched20.dll")); 
     56    //riched32_dll = LoadLibrary(_T("riched32.dll")); 
     57 
    5358 
    5459    const TCHAR ClassName[] = _T("InputWindow 0zuhiIf"); 
     
    102107    hEdit = CreateWindowEx( 
    103108                0, 
    104                 //_T("RICHEDIT_CLASS"), 
    105                 _T("RICHEDIT"), 
     109                RICHEDIT_CLASS, 
     110                //_T("RICHEDIT"), 
    106111                _T(""), 
    107112                WS_CHILD | WS_VISIBLE | WS_BORDER, 
  • lang/cplusplus/i3/trunk/src/gui-windows/InputWindowCore.h

    r23069 r26757  
    11#pragma once 
    22 
     3#include <mol/GuiModule.h> 
    34#include "Common.h" 
    4 #include <windows.h> 
    55 
    66namespace i3 
     
    2525private: 
    2626    HWND hEdit; 
     27    HMODULE riched32_dll; 
    2728public: 
    2829    // for copipe 
  • lang/cplusplus/i3/trunk/src/mol/include/mol/gui-windows/GuiModule.h

    r25984 r26757  
    7070 
    7171    LONG_PTR breakLoopRequest; 
     72 
    7273public: 
    7374    Child& getChild() 
     
    7879    { 
    7980        InterlockedExchangePointer(&breakLoopRequest, 1); 
    80         if (getWindow()) 
    81         { 
    82             if (DestroyWindow(getWindow()) != 0) 
    83             { 
    84                 // ok 
    85             } 
    86             else 
    87             { 
    88                 // error 
    89             } 
    90             setWindow(NULL); 
     81        if (InterlockedExchangePointer(&destroyed, 1) == 0) 
     82        { 
     83            HWND w = getWindow(); 
     84            if (IsWindow(w)) 
     85            {  
     86                if (DestroyWindow(w) != 0) 
     87                { 
     88                    // ok 
     89                } 
     90                else 
     91                { 
     92                    // error 
     93                    DebugBreak(); 
     94                } 
     95            } 
    9196        } 
    9297    } 
    9398    ~GuiModule() { 
     99        assert(!IsWindow(getWindow()) || destroyed); 
    94100        destroy(); 
    95101    } 
    96102    void loop() 
    97103    { 
    98         if (breakLoopRequest) 
    99         { 
    100             PostQuitMessage(0); 
     104        if (InterlockedExchangePointer(&breakLoopRequest, 0)) // danger ? 
     105        { 
     106            InterlockedExchangePointer(&breakLoopRequest, 1); 
     107            //PostQuitMessage(0); 
    101108            return; 
    102109        } 
    103110 
    104         SetTimer(NULL,0,10000,NULL); // for check "break message loop request" 
     111        //SetTimer(NULL, 0, 10000, NULL); // for check "break message loop request" 
    105112 
    106113        MSG msg = {}; 
    107         for (BOOL result = 0; (result = GetMessage(&msg, NULL, 0, 0)), result;) 
    108         { 
    109             if (result == -1) 
     114        for (;;) 
     115        { 
     116            BOOL result = GetMessage(&msg, NULL, 0, 0); 
     117            if (!result) 
     118            { 
     119                break; 
     120            } 
     121            else if (result == -1) 
    110122            { 
    111123                // error 
     
    113125                break; 
    114126            } 
    115             if (breakLoopRequest)   // danger ? 
    116             { 
    117                 PostQuitMessage(0); 
    118                 break; 
    119             } 
     127            //if (breakLoopRequest)   // danger ? 
     128            //{ 
     129            //    PostQuitMessage(0); 
     130            //    break; 
     131            //} 
    120132 
    121133            TranslateMessage(&msg); 
     
    124136    } 
    125137 
    126     GuiModule(): hWnd(NULL), wndproc(getChild()), breakLoopRequest(false), repost(false), handled(true) 
     138    GuiModule(): hWnd(NULL), wndproc(getChild()), breakLoopRequest(false), repost(false), handled(true), destroyed(0) 
    127139    { 
    128140    } 
     
    156168    bool repost; 
    157169    bool handled; 
     170    DWORD_PTR destroyed; 
    158171protected: 
    159172    void repostEvent() 
     
    173186            e->execute(e, &getChild()); 
    174187            return 0; 
     188        } else if (msg == WM_DESTROY || msg == WM_QUIT) { 
     189            InterlockedExchangePointer(&destroyed, 1); 
    175190        } 
    176191 
     
    179194        { 
    180195#include "MessageCracker-inl.h" 
     196        default: 
     197            SetMsgHandled(false); 
     198            break; 
    181199        } 
    182200