Beispiel #1
0
void dlgFind_Find(HWND hwnd)
{
HWND hwndFind = WinWindowFromID(hwnd,IDHEF_FIND);
HWND hwndCaseSens = WinWindowFromID(hwnd,IDB_CASESENSITIVE);

MLE_SEARCHDATA searchData;
ULONG ulStyle = 0;
int findLen=0;
char *findStr = NULL;

    findLen = WinQueryWindowTextLength(hwndFind);
    findStr = malloc(findLen+1);
#ifdef DEBUG
    assert(findStr!=NULL);
#endif
    if (findStr==NULL) return;
    WinQueryWindowText(hwndFind,findLen+1,findStr);

    searchData.cb = sizeof(searchData);
    searchData.pchFind = findStr;
    searchData.pchReplace = NULL;
    searchData.iptStart = -1;
    searchData.iptStop = -1;
    ulStyle = MLFSEARCH_SELECTMATCH;
    if (WinSendMsg(hwndCaseSens,BM_QUERYCHECK,0,0))
        ulStyle |= MLFSEARCH_CASESENSITIVE;
    dlgFind_SetFound(hwnd,(int) WinSendMsg(hwndHMLE,HMLM_SEARCH,MPFROMLONG(ulStyle),&searchData));
    free(findStr);
}
Beispiel #2
0
MRESULT clbQueryWparms(PCLBOX pclb, PWNDPARAMS pwpm) {
   // parametri presentazione: usa procedura default
   if (isOrdWndParm(pwpm->fsStatus))
      return(WinDefWindowProc(pclb->hwnd, WM_QUERYWINDOWPARAMS,
                              (MPARAM)pwpm, MPVOID));
   // testo finestra
   if (pwpm->fsStatus & WPM_TEXT) {
      if (pclb->fl & CLBXS_CHECK && pclb->hchk) {
         WinQueryWindowText(pclb->hchk, pwpm->cchText, pwpm->pszText);
      } else if (pclb->cbtxt) {
         memcpy((PVOID)pwpm->pszText, (PVOID)pclb->psz,
                min(pwpm->cchText, pclb->cbtxt) + 1);
      } else {
         if (pwpm->cchText) *(pwpm->pszText) = '\0';
      } /* endif */
   } /* endif */
   // lunghezza testo finestra
   if (pwpm->fsStatus & WPM_CCHTEXT) {
      if (pclb->fl & CLBXS_CHECK && pclb->hchk)
         pwpm->cchText = (pclb->fl & CLBXS_CHECK && pclb->hchk)?
                         WinQueryWindowTextLength(pclb->hchk): pclb->cbtxt;
   } /* endif */
   if (pwpm->fsStatus & WPM_CTLDATA) {
      if (pwpm->cbCtlData < sizeof(CLBOXCDATA)) return (MRESULT)FALSE;
      ((PCLBOXCDATA)pwpm->pCtlData)->cb =  sizeof(CLBOXCDATA);
      ((PCLBOXCDATA)pwpm->pCtlData)->cch = pclb->cchef;
   } /* endif */
   if (pwpm->fsStatus & WPM_CBCTLDATA) {
      pwpm->cbCtlData = sizeof(CLBOXCDATA);
   } /* endif */
   return (MRESULT)TRUE;
}
ULONG clbEnableAdd(PCLBOX pclb) {
   BOOL notempty = WinQueryWindowTextLength(pclb->hentry)? 1: 0;
   if (notempty != pclb->is.addon) {
      pclb->is.addon = notempty;
      WinEnableWindow(pclb->hadd, pclb->is.addon);
   } // end if
   return CLBXN_ENCHANGE;
}
Beispiel #4
0
int dlgFind_SetButtonFocus(HWND hwnd)
{
HWND hwndBtnFind = WinWindowFromID(hwnd,IDB_FIND);
HWND hwndBtnReplace = WinWindowFromID(hwnd,IDB_REPLACE);
HWND hwndBtnReplaceFind = WinWindowFromID(hwnd,IDB_REPLACEFIND);
HWND hwndBtnReplaceAll = WinWindowFromID(hwnd,IDB_REPLACEALL);
HWND hwndBtnClose = WinWindowFromID(hwnd,DID_OK);
HWND hwndFocus;

HWND hwndFind = WinWindowFromID(hwnd,IDHEF_FIND);
int findLen=0;
char *findStr = NULL;

    findLen = WinQueryWindowTextLength(hwndFind);
//  findLen = (int)WinSendMsg(hwndFind,HEM_QUERYTEXTLENGTH,0,0);
    findStr = malloc(findLen+1);
#ifdef DEBUG
    assert(findStr!=NULL);
#endif
    if (findStr==NULL) return 0;
    WinQueryWindowText(hwndFind,findLen+1,findStr);
//  WinSendMsg(hwndFind,HEM_QUERYTEXT,findStr,0);

    hwndFocus = WinQueryFocus(HWND_DESKTOP);
    if ((hwndFocus!=hwndBtnFind)&&
        (hwndFocus!=hwndBtnReplace)&&
        (hwndFocus!=hwndBtnReplaceFind)&&
        (hwndFocus!=hwndBtnReplaceAll)&&
        (hwndFocus!=hwndBtnClose))
        {
        if (strlen(findStr)>0)
            {
            WinEnableWindow(hwndBtnFind,TRUE);
            WinSendMsg(hwndBtnFind,BM_SETDEFAULT,MPFROMLONG(TRUE),0);
            WinSendMsg(hwndBtnClose,BM_SETDEFAULT,MPFROMLONG(FALSE),0);
            } else {
            WinEnableWindow(hwndBtnFind,FALSE);
            dlgFind_SetFound(hwnd,FALSE);
            WinSendMsg(hwndBtnFind,BM_SETDEFAULT,MPFROMLONG(FALSE),0);
            WinSendMsg(hwndBtnClose,BM_SETDEFAULT,MPFROMLONG(TRUE),0);
            }
        return TRUE;
        }
    return FALSE;
}
 static void control(HWND hwnd, USHORT id, USHORT notify, MPARAM mp2)
 {
    HWND h = WinWindowFromID(hwnd,id);

    id -= DLG_ELEMENT_ID;

    switch(id)
    {
    case MSGID_HISTORY:
       containerAction(hwnd,notify,(void *) mp2);
       break;

    case MSGID_EDITBOX:
       if(notify == MLN_CHANGE)
          WinEnableWindow(CHILD_WINDOW(hwnd,MSGID_SENDBUTTON), (WinQueryWindowTextLength(h) > 0) );
       break;
    }
 }
Beispiel #6
0
void dlgFind_Replace(HWND hwnd,int findNext)
{
HWND hwndReplace = WinWindowFromID(hwnd,IDHEF_REPLACE);

int replaceLen=0;
char *replaceStr = NULL;
USHORT minIpt,maxIpt;
ULONG ret;

    if (!dlgFind_found)
        {
        dlgFind_Find(hwnd);
        return;
        }
    ret = (ULONG)WinSendMsg(hwndHMLE,HMLM_QUERYSEL,MPFROMLONG(HMLFQS_MINMAXSEL),0);
    minIpt = ret >> 16;
    maxIpt = ret & 0xFFFF;

    if (minIpt==maxIpt) return;

    replaceLen = WinQueryWindowTextLength(hwndReplace);
    replaceStr = malloc(replaceLen+1);
#ifdef DEBUG
    assert(replaceStr!=NULL);
#endif
    if (replaceStr==NULL) return;
    WinQueryWindowText(hwndReplace,replaceLen+1,replaceStr);
    WinSendMsg(hwndHMLE,HMLM_INSERT,replaceStr,0);

    free(replaceStr);
    if (findNext)
        dlgFind_Find(hwnd);
        else
        dlgFind_SetFound(hwnd,FALSE);
    return;
}