예제 #1
0
파일: gemwmlib.c 프로젝트: ragnar76/emutos
/*
*       Routine to top a window and then make the right redraws happen
*/
void wm_mktop(WORD w_handle)
{
        GRECT           t, p;

        if ( w_handle != gl_wtop )
        {
          ob_order(gl_wtree, w_handle, NIL);
          w_getsize(WS_PREV, w_handle, &p);
          w_getsize(WS_CURR, w_handle, &t);
          draw_change(w_handle, &t);
          w_setsize(WS_PREV, w_handle, &p);
        }
}
예제 #2
0
파일: gemwmlib.c 프로젝트: ragnar76/emutos
/*
*       Opens or closes a window.
*/
void wm_opcl(WORD wh, GRECT *pt, WORD isadd)
{
        GRECT           t;

        rc_copy(pt, &t);
        wm_update(TRUE);
        if (isadd)
        {
          D.w_win[wh].w_flags |= VF_INTREE;
          w_obadd(&W_TREE[ROOT], ROOT, wh);
        }
        else
        {
          ob_delete(gl_wtree, wh);
          D.w_win[wh].w_flags &= ~VF_INTREE;
        }
        draw_change(wh, &t);
        if (isadd)
          w_setsize(WS_PREV, wh, pt);
        wm_update(FALSE);
}
예제 #3
0
파일: Circle.cpp 프로젝트: pzhxbz/drawing
void Circle::print()
{
    if(info!=-1)
        draw_change();
}
예제 #4
0
파일: Triangle.cpp 프로젝트: pzhxbz/drawing
void Triangle::print()
{
    if(info!=-1)
        draw_change();
}
예제 #5
0
파일: gemwmlib.c 프로젝트: ragnar76/emutos
void wm_set(WORD w_handle, WORD w_field, WORD *pinwds)
{
        WORD            which, liketop, i;
        register WORD   wbar;
        WORD            osl, osz, nsl, nsz;
        GRECT           t;
        WINDOW          *pwin;  

        osl = osz = nsl = nsz = 0;
        which = -1;
                                                /* grab the window sync */
        wm_update(TRUE);
        pwin = &D.w_win[w_handle];
        wbar = wm_gsizes(w_field, &osl, &osz); 
        if (wbar)
        {
          pinwds[0] = max(-1, pinwds[0]);
          pinwds[0] = min(1000, pinwds[0]);
        }
        liketop = ( ( w_handle == gl_wtop ) ||
                    ( pwin->w_flags & VF_SUBWIN ) );
        switch(w_field)
        {
          case WF_NAME:
                which = W_NAME;
                break;
          case WF_INFO:
                which = W_INFO;
                break;
          case WF_SIZTOP:
                ob_order(gl_wtree, w_handle, NIL);
                                                /* fall thru    */
          case WF_CXYWH:
                draw_change(w_handle, (GRECT *)&pinwds[0]);
                break;
          case WF_TOP:
                if (w_handle != gl_wtop)
                {
                  for(i=W_TREE[ROOT].ob_head; i>ROOT; i=W_TREE[i].ob_next)
                  {
                    if ( (i != w_handle) &&
                         (D.w_win[i].w_owner == rlr) &&
                         (D.w_win[i].w_flags & VF_SUBWIN) &&
                         (pwin->w_flags & VF_SUBWIN) )
                      wm_mktop(i);
                  }
                  wm_mktop(w_handle);
                }
                break;
          case WF_NEWDESK:
                pwin->w_owner = rlr;
                desk_tree[rlr->p_pid] = gl_newdesk = *(LONG *) &pinwds[0];
                desk_root[rlr->p_pid] = gl_newroot = pinwds[2];
                break;
          case WF_HSLSIZ:
                pwin->w_hslsiz = pinwds[0];
                break;
          case WF_VSLSIZ:
                pwin->w_vslsiz = pinwds[0];
                break;
          case WF_HSLIDE:
                pwin->w_hslide = pinwds[0];
                break;
          case WF_VSLIDE:
                pwin->w_vslide = pinwds[0];
                break;
          case WF_TATTRB:
                if (pinwds[0] & WA_SUBWIN)
                  pwin->w_flags |= VF_SUBWIN;
                else
                  pwin->w_flags &= ~VF_SUBWIN;
                if (pinwds[0] & WA_KEEPWIN)
                  pwin->w_flags |= VF_KEEPWIN;
                else
                  pwin->w_flags &= ~VF_KEEPWIN;
                break;
        }
        if ( (wbar) &&
             (liketop) )
        {
          w_bldactive(w_handle);
          wm_gsizes(w_field, &nsl, &nsz); 
          if ( (osl != nsl) ||
               (osz != nsz) ||
               (pwin->w_flags & VF_SUBWIN) )
          {
            w_getsize(WS_TRUE, w_handle, &t);
            do_walk(w_handle, gl_awind, wbar + 3, MAX_DEPTH, &t);
          }
        }
        if (which != -1)
          w_strchg(w_handle, which, *(LONG *)pinwds);
                                                /* give up the sync     */
        wm_update(FALSE);
}