void MCButton::SetSharedHilite(MCExecContext& ctxt, bool setting) { if (changeflag(setting, F_SHARED_HILITE)) Redraw(); }
void CPicWnd::ClearImage() { m_picDrawer.Destroy(); Redraw(); }
void CPicWnd::OnSize(UINT nType, int cx, int cy) { CWnd::OnSize(nType, cx, cy); Redraw(); }
void CEquationEditorWindow::OnZoom( float coef /* = 1 */, std::shared_ptr<IBaseExprModel> node /* = nullptr */ ) { ZoomDFS( MaxCoef( coef, presenter->GetRoot() ), presenter->GetRoot() ); presenter->InvalidateTree(); Redraw(); }
void URLView::MouseMoved( BPoint point, uint32 transit, const BMessage *message ) { // If the link isn't enabled, don't do anything. if( !IsEnabled() ) return; // Make sure the window is the active one. if( !Window()->IsActive() ) return; // See which mouse buttons were clicked. int32 buttons = Window()->CurrentMessage()->FindInt32( "buttons" ); // Is the user currently dragging the link? (i.e. is a mouse button // currently down?) bool alreadyDragging = (buttons != 0); switch( transit ) { case( B_ENTERED_VIEW ): // Should we set the cursor to the link cursor? if( GetTextRect().Contains( point ) && !draggedOut ) { if( !alreadyDragging ) be_app->SetCursor( linkCursor ); // Did the user leave and re-enter the view while // holding down the mouse button? If so, highlight // the link. if( selected ) { SetHighColor( clickColor ); Redraw(); } // Should we hover-highlight the link? else if( hoverEnabled && !alreadyDragging ) { if( buttons == 0 ) { SetHighColor( hoverColor ); Redraw(); hovering = true; } } } break; case( B_EXITED_VIEW ): // We want to restore the link to it normal color and the // mouse cursor to the normal hand. However, we should only // set the color and re-draw if it is needed. if( selected && !draggedOut ) { be_app->SetCursor( B_HAND_CURSOR ); SetHighColor( color ); Redraw(); // Is the user drag-and-dropping a bookmark or person? if( draggable ) { draggedOut = true; if( IsEmailLink() ) DoPersonDrag(); else DoBookmarkDrag(); } } // Is the link currently hover-highlighted? If so, restore // the normal color now. else if( hovering && !alreadyDragging ) { be_app->SetCursor( B_HAND_CURSOR ); SetHighColor( color ); Redraw(); hovering = false; } // Change the cursor back to the hand. else { be_app->SetCursor( B_HAND_CURSOR ); } break; case( B_INSIDE_VIEW ): // The user could either be moving out of the view or // back into it here, so we must handle both cases. // In the first case, the cursor is now over the link. if( GetTextRect().Contains( point ) && !draggedOut ) { // We only want to change the cursor if not dragging. if( !alreadyDragging ) be_app->SetCursor( linkCursor ); if( selected ) { if( draggable ) { // If the user moves the mouse more than ten // pixels, begin the drag. if( (point.x - dragOffset.x) > 10 || (dragOffset.x - point.x) > 10 || (point.y - dragOffset.y) > 10 || (dragOffset.y - point.y) > 10 ) { draggedOut = true; // Draw the appropriate drag object, etc. if( IsEmailLink() ) DoPersonDrag(); else DoBookmarkDrag(); SetHighColor( color ); Redraw(); } } else { // Since the link is not draggable, highlight it // as long as the user holds the button down and // has the mouse cursor over it (like a standard // button). SetHighColor( clickColor ); Redraw(); } } // The link isn't currently selected? If hover-highlighting // is enabled, highlight the link. else if( hoverEnabled && !alreadyDragging ) { SetHighColor( hoverColor ); Redraw(); hovering = true; } } // In this case, the mouse cursor is not over the link, so we // need to restore the original link color, etc. else if( !draggedOut ) { be_app->SetCursor( B_HAND_CURSOR ); if( selected ) { SetHighColor( color ); Redraw(); // Is the user dragging the link? if( draggable ) { draggedOut = true; if( IsEmailLink() ) DoPersonDrag(); else DoBookmarkDrag(); } } // Is the mouse cursor hovering over the link? else if( hovering ) { SetHighColor( color ); Redraw(); hovering = false; } } break; } }
void wxCustomButton::OnMouseEvents(wxMouseEvent& event) { if (m_button_style & wxCUSTBUT_NOTOGGLE) return; if (event.LeftDown() || event.RightDown()) { if (!HasCapture()) CaptureMouse(); // keep depressed until up m_down++; Redraw(); } else if (event.LeftDClick() || event.RightDClick()) { m_down++; // GTK eats second down event Redraw(); } else if (event.LeftUp()) { if (HasCapture()) ReleaseMouse(); m_eventType = wxEVT_LEFT_UP; if (wxRect(wxPoint(0,0), GetSize()).Inside(event.GetPosition())) { if ((m_button_style & wxCUSTBUT_BUTTON) && (m_down > 0)) { m_down = 0; Redraw(); SendEvent(); return; } else { if (!m_timer) { m_timer = new wxTimer(this, m_down+1); m_timer->Start(200, true); } else { m_eventType = wxEVT_LEFT_DCLICK; } if ((m_button_style & wxCUSTBUT_TOGGLE) && (m_button_style & wxCUSTBUT_TOG_DCLICK_BUT)) m_down++; } } Redraw(); } else if (event.RightUp()) { if (HasCapture()) ReleaseMouse(); m_eventType = wxEVT_RIGHT_UP; if (wxRect(wxPoint(0,0), GetSize()).Inside(event.GetPosition())) { if ((m_button_style & wxCUSTBUT_BUTTON) && (m_down > 0)) { m_down = 0; Redraw(); SendEvent(); return; } else { m_down++; if (!m_timer) { m_timer = new wxTimer(this, m_down); m_timer->Start(250, true); } else { m_eventType = wxEVT_RIGHT_DCLICK; } } } Redraw(); } else if (event.Entering()) { m_focused = true; if ((event.LeftIsDown() || event.RightIsDown()) && HasCapture()) m_down++; Redraw(); } else if (event.Leaving()) { m_focused = false; if ((event.LeftIsDown() || event.RightIsDown()) && HasCapture()) m_down--; Redraw(); } }
void FizzyWindow::OnIdle() { //return; //scn.Update(gameTime.Update()); Redraw(); };
void Panel::OnFocusChange(bool Get) { ProcessPluginEvent(Get? FE_GOTFOCUS : FE_KILLFOCUS, nullptr); if (Get) Redraw(); }
bool Panel::ProcessMouseDrag(const MOUSE_EVENT_RECORD *MouseEvent) { if (DragX!=-1) { if (!(MouseEvent->dwButtonState & MOUSE_ANY_BUTTON_PRESSED)) { EndDrag(); if (!MouseEvent->dwEventFlags && SrcDragPanel!=this) { MoveToMouse(MouseEvent); Redraw(); SrcDragPanel->ProcessKey(Manager::Key(DragMove ? KEY_DRAGMOVE:KEY_DRAGCOPY)); } return true; } if (MouseEvent->dwMousePosition.Y<=m_Y1 || MouseEvent->dwMousePosition.Y>=m_Y2 || !Parent()->GetAnotherPanel(SrcDragPanel)->IsVisible()) { EndDrag(); return true; } if (MouseEvent->dwButtonState & RIGHTMOST_BUTTON_PRESSED && !MouseEvent->dwEventFlags) DragMove=!DragMove; if (MouseEvent->dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED) { if ((abs(MouseEvent->dwMousePosition.X-DragX)>15 || SrcDragPanel!=this) && !m_ModalMode) { if (SrcDragPanel->GetSelCount()==1 && !DragSaveScr) { SrcDragPanel->GoToFile(strDragName); SrcDragPanel->Show(); } DragMessage(MouseEvent->dwMousePosition.X,MouseEvent->dwMousePosition.Y,DragMove); return true; } else { DragSaveScr.reset(); } } } if (MouseEvent->dwButtonState & FROM_LEFT_1ST_BUTTON_PRESSED && !MouseEvent->dwEventFlags && m_X2 - m_X1<ScrX) { MoveToMouse(MouseEvent); os::fs::find_data Data; if (!get_first_selected(Data)) return false; strDragName = Data.FileName; if (!IsParentDirectory(Data)) { SrcDragPanel=this; DragX=MouseEvent->dwMousePosition.X; DragY=MouseEvent->dwMousePosition.Y; DragMove = IntKeyState.ShiftPressed(); } } return false; }
void UIListTreeType::setActive(bool x) { list_tree_active = x; Redraw(); }
bool Search::ProcessKey(const Manager::Key& Key) { auto LocalKey = Key; // для вставки воспользуемся макродвижком... if (LocalKey()==KEY_CTRLV || LocalKey()==KEY_RCTRLV || LocalKey()==KEY_SHIFTINS || LocalKey()==KEY_SHIFTNUMPAD0) { string ClipText; if (GetClipboardText(ClipText)) { if (!ClipText.empty()) { ProcessName(ClipText); ShowBorder(); } } return true; } else if (LocalKey() == KEY_OP_XLAT) { m_FindEdit->Xlat(); const auto strTempName = m_FindEdit->GetString(); m_FindEdit->ClearString(); ProcessName(strTempName); Redraw(); return true; } else if (LocalKey() == KEY_OP_PLAINTEXT) { m_FindEdit->ProcessKey(LocalKey); const auto strTempName = m_FindEdit->GetString(); m_FindEdit->ClearString(); ProcessName(strTempName); Redraw(); return true; } else LocalKey=_CorrectFastFindKbdLayout(Key.Event(),LocalKey()); if (LocalKey()==KEY_ESC || LocalKey()==KEY_F10) { m_KeyToProcess=KEY_NONE; Close(); return true; } // // _SVS(if (!FirstKey) SysLog(L"Panel::FastFind Key=%s %s",_FARKEY_ToName(Key),_INPUT_RECORD_Dump(&rec))); if (LocalKey()>=KEY_ALT_BASE+0x01 && LocalKey()<=KEY_ALT_BASE+65535) LocalKey=lower(static_cast<WCHAR>(LocalKey()-KEY_ALT_BASE)); else if (LocalKey()>=KEY_RALT_BASE+0x01 && LocalKey()<=KEY_RALT_BASE+65535) LocalKey=lower(static_cast<WCHAR>(LocalKey()-KEY_RALT_BASE)); if (LocalKey()>=KEY_ALTSHIFT_BASE+0x01 && LocalKey()<=KEY_ALTSHIFT_BASE+65535) LocalKey=lower(static_cast<WCHAR>(LocalKey()-KEY_ALTSHIFT_BASE)); else if (LocalKey()>=KEY_RALTSHIFT_BASE+0x01 && LocalKey()<=KEY_RALTSHIFT_BASE+65535) LocalKey=lower(static_cast<WCHAR>(LocalKey()-KEY_RALTSHIFT_BASE)); if (LocalKey()==KEY_MULTIPLY) LocalKey=L'*'; switch (LocalKey()) { case KEY_F1: { Hide(); { Help::create(L"FastFind"sv); } Show(); break; } case KEY_CTRLNUMENTER: case KEY_RCTRLNUMENTER: case KEY_CTRLENTER: case KEY_RCTRLENTER: m_Owner->FindPartName(m_FindEdit->GetString(), TRUE, 1); Redraw(); break; case KEY_CTRLSHIFTNUMENTER: case KEY_RCTRLSHIFTNUMENTER: case KEY_CTRLSHIFTENTER: case KEY_RCTRLSHIFTENTER: m_Owner->FindPartName(m_FindEdit->GetString(), TRUE, -1); Redraw(); break; case KEY_NONE: case KEY_IDLE: break; default: if ((LocalKey()<32 || LocalKey()>=65536) && LocalKey()!=KEY_BS && LocalKey()!=KEY_CTRLY && LocalKey()!=KEY_RCTRLY && LocalKey()!=KEY_CTRLBS && LocalKey()!=KEY_RCTRLBS && !IsModifKey(LocalKey()) && !(LocalKey()==KEY_CTRLINS||LocalKey()==KEY_CTRLNUMPAD0) && // KEY_RCTRLINS/NUMPAD0 passed to panels !(LocalKey()==KEY_SHIFTINS||LocalKey()==KEY_SHIFTNUMPAD0) && !((LocalKey() == KEY_KILLFOCUS || LocalKey() == KEY_GOTFOCUS) && IsWindowsVistaOrGreater()) // Mantis #2903 ) { m_KeyToProcess=LocalKey; Close(); return true; } auto strLastName = m_FindEdit->GetString(); if (m_FindEdit->ProcessKey(LocalKey)) { auto strName = m_FindEdit->GetString(); // уберем двойные '**' if (strName.size() > 1 && strName.back() == L'*' && strName[strName.size()-2] == L'*') { strName.pop_back(); m_FindEdit->SetString(strName); } /* $ 09.04.2001 SVS проблемы с быстрым поиском. Подробнее в 00573.ChangeDirCrash.txt */ if (starts_with(strName, L'"')) { strName.erase(0, 1); m_FindEdit->SetString(strName); } if (m_Owner->FindPartName(strName, FALSE, 1)) { strLastName = strName; } else { if (Global->CtrlObject->Macro.IsExecuting())// && Global->CtrlObject->Macro.GetLevelState() > 0) // если вставка макросом... { //Global->CtrlObject->Macro.DropProcess(); // ... то дропнем макропроцесс //Global->CtrlObject->Macro.PopState(); ; } m_FindEdit->SetString(strLastName); } Redraw(); } break; } return true; }
static void apply_vendor_map (void) { int i; int changed, tot; bool state; state = vendorMapEnable; /* enable mapping */ vendorMapEnable = true; /* reset our counts */ changed = 0; tot = 0; /* If we have loaded vendor drills, then apply them to the design */ if (n_vendor_drills > 0) { /* first all the vias */ VIA_LOOP (PCB->Data); { tot++; if (via->DrillingHole != vendorDrillMap (via->DrillingHole)) { /* only change unlocked vias */ if (!TEST_FLAG (LOCKFLAG, via)) { if (ChangeObject2ndSize (VIA_TYPE, via, NULL, NULL, vendorDrillMap (via->DrillingHole), true, false)) changed++; else { Message (_ ("Via at %.2f, %.2f not changed. Possible reasons:\n" "\t- pad size too small\n" "\t- new size would be too large or too small\n"), 0.01 * via->X, 0.01 * via->Y); } } else { Message (_("Locked via at %.2f, %.2f not changed.\n"), 0.01 * via->X, 0.01 * via->Y); } } } END_LOOP; /* and now the pins */ ELEMENT_LOOP (PCB->Data); { /* * first figure out if this element should be skipped for some * reason */ if (vendorIsElementMappable (element)) { /* the element is ok to modify, so iterate over its pins */ PIN_LOOP (element); { tot++; if (pin->DrillingHole != vendorDrillMap (pin->DrillingHole)) { if (!TEST_FLAG (LOCKFLAG, pin)) { if (ChangeObject2ndSize (PIN_TYPE, element, pin, NULL, vendorDrillMap (pin-> DrillingHole), true, false)) changed++; else { Message (_ ("Pin %s (%s) at %.2f, %.2f (element %s, %s, %s) not changed.\n" "\tPossible reasons:\n" "\t- pad size too small\n" "\t- new size would be too large or too small\n"), UNKNOWN (pin->Number), UNKNOWN (pin->Name), 0.01 * pin->X, 0.01 * pin->Y, UNKNOWN (NAMEONPCB_NAME (element)), UNKNOWN (VALUE_NAME (element)), UNKNOWN (DESCRIPTION_NAME (element))); } } else { Message (_ ("Locked pin at %-6.2f, %-6.2f not changed.\n"), 0.01 * pin->X, 0.01 * pin->Y); } } } END_LOOP; } } END_LOOP; Message (_("Updated %d drill sizes out of %d total\n"), changed, tot); /* Update the current Via */ if (Settings.ViaDrillingHole != vendorDrillMap (Settings.ViaDrillingHole)) { changed++; Settings.ViaDrillingHole = vendorDrillMap (Settings.ViaDrillingHole); Message (_("Adjusted active via hole size to be %6.2f mils\n"), 0.01 * Settings.ViaDrillingHole); } /* and update the vias for the various routing styles */ for (i = 0; i < NUM_STYLES; i++) { if (PCB->RouteStyle[i].Hole != vendorDrillMap (PCB->RouteStyle[i].Hole)) { changed++; PCB->RouteStyle[i].Hole = vendorDrillMap (PCB->RouteStyle[i].Hole); Message (_ ("Adjusted %s routing style via hole size to be %6.2f mils\n"), PCB->RouteStyle[i].Name, 0.01 * PCB->RouteStyle[i].Hole); if (PCB->RouteStyle[i].Diameter < PCB->RouteStyle[i].Hole + MIN_PINORVIACOPPER) { PCB->RouteStyle[i].Diameter = PCB->RouteStyle[i].Hole + MIN_PINORVIACOPPER; Message (_ ("Increased %s routing style via diameter to %6.2f mils\n"), PCB->RouteStyle[i].Name, 0.01 * PCB->RouteStyle[i].Diameter); } } } /* * if we've changed anything, indicate that we need to save the * file, redraw things, and make sure we can undo. */ if (changed) { SetChangedFlag (true); Redraw (); IncrementUndoSerialNumber (); } } /* restore mapping on/off */ vendorMapEnable = state; }
// request redraw on idle void SeasonalWindow::OnIdle() { scn.Update(gameTime); Redraw(); };
// Looks up the first topmost clicked Element end brings it to front void TGui::OnMouseDown(int x, int y, bool delay) { int i; TGuiElement *e; // start with topmost element i = Count; while( i ) { i--; // fetch hittest status bool hittest = zList[i]->CheckMouse(x, y); ///////////////////////////////// // check for mouse focus change ///////////////////////////////// // already has focus = break; if( hittest && zList[i]->bMouseFocus ) { if (delay == true) { if (zList[i]->OnMouseDownDelay()) Redraw(); } else if( zList[i]->OnMouseDown() ) { Redraw(); } return; } // else set it for the topmost element only if( hittest ) { // clear all MouseFocus flags for(int j=0; j<Count; j++) zList[j]->bMouseFocus = false; zList[i]->bMouseFocus = true; printf("%s got mouse focus.\n", zList[i]->name); // shift elements by one to free the last z-slot for this one e = zList[i]; while( zList[i+1] != NULL ) { zList[i] = zList[i+1]; zList[i]->zIndex = i; i++; } zList[i] = e; zList[i]->zIndex = i; if (delay == true) zList[i]->OnMouseDownDelay(); else zList[i]->OnMouseDown(); // on mouse focus change invalidate all elements for(i=0; i<Count; i++) zList[i]->bInvalidRect = true; Redraw(); // eflect changes return; } } // elements loop // no hittest - clear any Focus flag and redraw the scene for(i=0; i<Count; i++) if( zList[i]->bMouseFocus ) { zList[i]->bMouseFocus = false; zList[i]->bInvalidRect = true; } Redraw(); }
int main(int argc, char *argv[]) { EGLint egl_major, egl_minor; EGLConfig config; EGLint num_config; EGLContext context; GLuint vertex_shader; GLuint fragment_shader; GLuint program; GLint ret; GLint width, height; #ifdef USE_X XDisplay = XOpenDisplay(NULL); if (!XDisplay) { fprintf(stderr, "Error: failed to open X display.\n"); return -1; } Window XRoot = DefaultRootWindow(XDisplay); XSetWindowAttributes XWinAttr; XWinAttr.event_mask = ExposureMask | PointerMotionMask; XWindow = XCreateWindow(XDisplay, XRoot, 0, 0, WIDTH, HEIGHT, 0, CopyFromParent, InputOutput, CopyFromParent, CWEventMask, &XWinAttr); XMapWindow(XDisplay, XWindow); XStoreName(XDisplay, XWindow, "Mali libs test"); egl_display = eglGetDisplay((EGLNativeDisplayType) XDisplay); #else egl_display = eglGetDisplay(EGL_DEFAULT_DISPLAY); #endif /* USE_X */ if (egl_display == EGL_NO_DISPLAY) { fprintf(stderr, "Error: No display found!\n"); return -1; } if (!eglInitialize(egl_display, &egl_major, &egl_minor)) { fprintf(stderr, "Error: eglInitialise failed!\n"); return -1; } printf("EGL Version: \"%s\"\n", eglQueryString(egl_display, EGL_VERSION)); printf("EGL Vendor: \"%s\"\n", eglQueryString(egl_display, EGL_VENDOR)); printf("EGL Extensions: \"%s\"\n", eglQueryString(egl_display, EGL_EXTENSIONS)); eglChooseConfig(egl_display, config_attribute_list, &config, 1, &num_config); context = eglCreateContext(egl_display, config, EGL_NO_CONTEXT, context_attribute_list); if (context == EGL_NO_CONTEXT) { fprintf(stderr, "Error: eglCreateContext failed: 0x%08X\n", eglGetError()); return -1; } #ifdef USE_X egl_surface = eglCreateWindowSurface(egl_display, config, (void *) XWindow, window_attribute_list); #else egl_surface = eglCreateWindowSurface(egl_display, config, &native_window, window_attribute_list); #endif if (egl_surface == EGL_NO_SURFACE) { fprintf(stderr, "Error: eglCreateWindowSurface failed: " "0x%08X\n", eglGetError()); return -1; } if (!eglQuerySurface(egl_display, egl_surface, EGL_WIDTH, &width) || !eglQuerySurface(egl_display, egl_surface, EGL_HEIGHT, &height)) { fprintf(stderr, "Error: eglQuerySurface failed: 0x%08X\n", eglGetError()); return -1; } printf("Surface size: %dx%d\n", width, height); if (!eglMakeCurrent(egl_display, egl_surface, egl_surface, context)) { fprintf(stderr, "Error: eglMakeCurrent() failed: 0x%08X\n", eglGetError()); return -1; } printf("GL Vendor: \"%s\"\n", glGetString(GL_VENDOR)); printf("GL Renderer: \"%s\"\n", glGetString(GL_RENDERER)); printf("GL Version: \"%s\"\n", glGetString(GL_VERSION)); printf("GL Extensions: \"%s\"\n", glGetString(GL_EXTENSIONS)); printf("\nNow you should see the animation with 1 FPS framerate\n"); printf("of the screen changing background color between yellow\n"); printf("and blue (starting with yellow). Based on the timing\n"); printf("of going fullscreen, it may expose xf86-video-mali bug.\n"); set_fullscreen(); Redraw(width, height); #ifdef USE_X while (1) { Redraw(width, height); } #endif return 0; }
int Panel::SetPluginCommand(int Command,int Param1,void* Param2) { _ALGO(CleverSysLog clv(L"Panel::SetPluginCommand")); _ALGO(SysLog(L"(Command=%s, Param1=[%d/0x%08X], Param2=[%d/0x%08X])",_FCTL_ToName(Command),(int)Param1,Param1,(int)Param2,Param2)); int Result=FALSE; ProcessingPluginCommand++; switch (Command) { case FCTL_SETVIEWMODE: Result = Parent()->ChangePanelViewMode(shared_from_this(), Param1, Parent()->IsTopWindow()); break; case FCTL_SETSORTMODE: { int Mode=Param1; if ((Mode>SM_DEFAULT) && (Mode < SM_COUNT)) { SetSortMode(panel_sort(Mode - 1)); // Уменьшим на 1 из-за SM_DEFAULT Result=TRUE; } break; } case FCTL_SETSORTORDER: { ChangeSortOrder(Param1 != 0); Result=TRUE; break; } case FCTL_SETDIRECTORIESFIRST: { ChangeDirectoriesFirst(Param1 != 0); Result=TRUE; break; } case FCTL_CLOSEPANEL: if (m_PanelMode == panel_mode::PLUGIN_PANEL) { string folder=NullToEmpty((const wchar_t *)Param2); SetCurDir(folder,true); if (folder.empty()) Update(UPDATE_KEEP_SELECTION); Redraw(); } Result=TRUE; break; case FCTL_GETPANELINFO: { PanelInfo *Info=(PanelInfo *)Param2; if(!CheckStructSize(Info)) break; *Info = {}; Info->StructSize = sizeof(PanelInfo); UpdateIfRequired(); Info->OwnerGuid=FarGuid; Info->PluginHandle=nullptr; switch (GetType()) { case panel_type::FILE_PANEL: Info->PanelType=PTYPE_FILEPANEL; break; case panel_type::TREE_PANEL: Info->PanelType=PTYPE_TREEPANEL; break; case panel_type::QVIEW_PANEL: Info->PanelType=PTYPE_QVIEWPANEL; break; case panel_type::INFO_PANEL: Info->PanelType=PTYPE_INFOPANEL; break; } int X1,Y1,X2,Y2; GetPosition(X1,Y1,X2,Y2); Info->PanelRect.left=X1; Info->PanelRect.top=Y1; Info->PanelRect.right=X2; Info->PanelRect.bottom=Y2; Info->ViewMode=GetViewMode(); Info->SortMode = static_cast<OPENPANELINFO_SORTMODES>((GetSortMode() < panel_sort::COUNT? SM_UNSORTED - static_cast<int>(panel_sort::UNSORTED) : 0) + static_cast<int>(GetSortMode())); Info->Flags |= Global->Opt->ShowHidden? PFLAGS_SHOWHIDDEN : 0; Info->Flags |= Global->Opt->Highlight? PFLAGS_HIGHLIGHT : 0; Info->Flags |= GetSortOrder()? PFLAGS_REVERSESORTORDER : 0; Info->Flags |= GetSortGroups()? PFLAGS_USESORTGROUPS : 0; Info->Flags |= GetSelectedFirstMode()? PFLAGS_SELECTEDFIRST : 0; Info->Flags |= GetDirectoriesFirst()? PFLAGS_DIRECTORIESFIRST : 0; Info->Flags |= (GetMode() == panel_mode::PLUGIN_PANEL)? PFLAGS_PLUGIN : 0; Info->Flags |= IsVisible()? PFLAGS_VISIBLE : 0; Info->Flags |= IsFocused()? PFLAGS_FOCUS : 0; Info->Flags |= Parent()->IsLeft(this)? PFLAGS_PANELLEFT : 0; if (GetType() == panel_type::FILE_PANEL) { FileList *DestFilePanel=(FileList *)this; if (Info->Flags&PFLAGS_PLUGIN) { Info->OwnerGuid = DestFilePanel->GetPluginHandle()->plugin()->Id(); Info->PluginHandle = DestFilePanel->GetPluginHandle()->panel(); static int Reenter=0; if (!Reenter) { Reenter++; OpenPanelInfo PInfo; DestFilePanel->GetOpenPanelInfo(&PInfo); if (PInfo.Flags & OPIF_REALNAMES) Info->Flags |= PFLAGS_REALNAMES; if (PInfo.Flags & OPIF_DISABLEHIGHLIGHTING) Info->Flags &= ~PFLAGS_HIGHLIGHT; if (PInfo.Flags & OPIF_USECRC32) Info->Flags |= PFLAGS_USECRC32; if (PInfo.Flags & OPIF_SHORTCUT) Info->Flags |= PFLAGS_SHORTCUT; Reenter--; } } DestFilePanel->PluginGetPanelInfo(*Info); } if (!(Info->Flags&PFLAGS_PLUGIN)) // $ 12.12.2001 DJ - на неплагиновой панели - всегда реальные имена Info->Flags |= PFLAGS_REALNAMES; Result=TRUE; break; } case FCTL_GETPANELPREFIX: { string strTemp; if (GetType() == panel_type::FILE_PANEL && GetMode() == panel_mode::PLUGIN_PANEL) { PluginInfo PInfo = {sizeof(PInfo)}; FileList *DestPanel = ((FileList*)this); if (DestPanel->GetPluginInfo(&PInfo)) strTemp = NullToEmpty(PInfo.CommandPrefix); } if (Param1&&Param2) xwcsncpy((wchar_t*)Param2, strTemp.c_str(), Param1); Result=(int)strTemp.size()+1; break; } case FCTL_GETPANELHOSTFILE: case FCTL_GETPANELFORMAT: { string strTemp; if (GetType() == panel_type::FILE_PANEL) { FileList *DestFilePanel=(FileList *)this; static int Reenter=0; if (!Reenter && GetMode() == panel_mode::PLUGIN_PANEL) { Reenter++; OpenPanelInfo PInfo; DestFilePanel->GetOpenPanelInfo(&PInfo); switch (Command) { case FCTL_GETPANELHOSTFILE: strTemp=NullToEmpty(PInfo.HostFile); break; case FCTL_GETPANELFORMAT: strTemp=NullToEmpty(PInfo.Format); break; } Reenter--; } } if (Param1&&Param2) xwcsncpy((wchar_t*)Param2, strTemp.c_str(), Param1); Result=(int)strTemp.size()+1; break; } case FCTL_GETPANELDIRECTORY: { static int Reenter=0; if(!Reenter) { Reenter++; ShortcutInfo Info; GetShortcutInfo(Info); Result = static_cast<int>(aligned_sizeof<FarPanelDirectory>()); const auto folderOffset = Result; Result+=static_cast<int>(sizeof(wchar_t)*(Info.ShortcutFolder.size()+1)); const auto pluginFileOffset = Result; Result+=static_cast<int>(sizeof(wchar_t)*(Info.PluginFile.size()+1)); const auto pluginDataOffset = Result; Result+=static_cast<int>(sizeof(wchar_t)*(Info.PluginData.size()+1)); const auto dirInfo = static_cast<FarPanelDirectory*>(Param2); if(Param1>=Result && CheckStructSize(dirInfo)) { dirInfo->StructSize=sizeof(FarPanelDirectory); dirInfo->PluginId=Info.PluginGuid; dirInfo->Name = static_cast<wchar_t*>(static_cast<void*>(static_cast<char*>(Param2) + folderOffset)); dirInfo->Param = static_cast<wchar_t*>(static_cast<void*>(static_cast<char*>(Param2) + pluginDataOffset)); dirInfo->File = static_cast<wchar_t*>(static_cast<void*>(static_cast<char*>(Param2) + pluginFileOffset)); *std::copy(ALL_CONST_RANGE(Info.ShortcutFolder), const_cast<wchar_t*>(dirInfo->Name)) = L'\0'; *std::copy(ALL_CONST_RANGE(Info.PluginData), const_cast<wchar_t*>(dirInfo->Param)) = L'\0'; *std::copy(ALL_CONST_RANGE(Info.PluginFile), const_cast<wchar_t*>(dirInfo->File)) = L'\0'; } Reenter--; } break; } case FCTL_GETCOLUMNTYPES: case FCTL_GETCOLUMNWIDTHS: if (GetType() == panel_type::FILE_PANEL) { string strColumnTypes,strColumnWidths; ((FileList *)this)->PluginGetColumnTypesAndWidths(strColumnTypes,strColumnWidths); if (Command==FCTL_GETCOLUMNTYPES) { if (Param1&&Param2) xwcsncpy((wchar_t*)Param2,strColumnTypes.c_str(),Param1); Result=(int)strColumnTypes.size()+1; } else { if (Param1&&Param2) xwcsncpy((wchar_t*)Param2,strColumnWidths.c_str(),Param1); Result=(int)strColumnWidths.size()+1; } } break; case FCTL_GETPANELITEM: { if (GetType() == panel_type::FILE_PANEL && CheckNullOrStructSize(static_cast<FarGetPluginPanelItem*>(Param2))) Result = static_cast<int>(static_cast<FileList*>(this)->PluginGetPanelItem(Param1, static_cast<FarGetPluginPanelItem*>(Param2))); break; } case FCTL_GETSELECTEDPANELITEM: { if (GetType() == panel_type::FILE_PANEL && CheckNullOrStructSize(static_cast<FarGetPluginPanelItem*>(Param2))) Result = static_cast<int>(static_cast<FileList*>(this)->PluginGetSelectedPanelItem(Param1, static_cast<FarGetPluginPanelItem*>(Param2))); break; } case FCTL_GETCURRENTPANELITEM: { if (GetType() == panel_type::FILE_PANEL && CheckNullOrStructSize(static_cast<FarGetPluginPanelItem*>(Param2))) { PanelInfo Info; const auto DestPanel = static_cast<FileList*>(this); DestPanel->PluginGetPanelInfo(Info); Result = static_cast<int>(DestPanel->PluginGetPanelItem(static_cast<int>(Info.CurrentItem), static_cast<FarGetPluginPanelItem*>(Param2))); } break; } case FCTL_BEGINSELECTION: { if (GetType() == panel_type::FILE_PANEL) { ((FileList *)this)->PluginBeginSelection(); Result=TRUE; } break; } case FCTL_SETSELECTION: { if (GetType() == panel_type::FILE_PANEL) { ((FileList *)this)->PluginSetSelection(Param1, Param2 != nullptr); Result=TRUE; } break; } case FCTL_CLEARSELECTION: { if (GetType() == panel_type::FILE_PANEL) { static_cast<FileList*>(this)->PluginClearSelection(Param1); Result=TRUE; } break; } case FCTL_ENDSELECTION: { if (GetType() == panel_type::FILE_PANEL) { ((FileList *)this)->PluginEndSelection(); Result=TRUE; } break; } case FCTL_UPDATEPANEL: Update(Param1?UPDATE_KEEP_SELECTION:0); if (GetType() == panel_type::QVIEW_PANEL) UpdateViewPanel(); Result=TRUE; break; case FCTL_REDRAWPANEL: { PanelRedrawInfo *Info=(PanelRedrawInfo *)Param2; if (CheckStructSize(Info)) { m_CurFile=static_cast<int>(Info->CurrentItem); m_CurTopFile=static_cast<int>(Info->TopPanelItem); } // $ 12.05.2001 DJ перерисовываемся только в том случае, если мы - текущее окно if (Parent()->IsTopWindow()) Redraw(); Result=TRUE; break; } case FCTL_SETPANELDIRECTORY: { const auto dirInfo = static_cast<const FarPanelDirectory*>(Param2); if (CheckStructSize(dirInfo)) { Result = ExecShortcutFolder(NullToEmpty(dirInfo->Name), dirInfo->PluginId, NullToEmpty(dirInfo->File), NullToEmpty(dirInfo->Param), false, false, true); // restore current directory to active panel path if (!IsFocused()) { Parent()->ActivePanel()->SetCurPath(); } } break; } case FCTL_SETACTIVEPANEL: { if (IsVisible()) { Parent()->SetActivePanel(this); Result=TRUE; } break; } } ProcessingPluginCommand--; return Result; }
void MpImageWindow::SetImage (const MpImage *source) { image = source; if (hold) ConvertToXImage(image); Redraw(); }
nsresult nsBox::SyncLayout(nsBoxLayoutState& aState) { /* PRBool collapsed = PR_FALSE; IsCollapsed(aState, collapsed); if (collapsed) { CollapseChild(aState, this, PR_TRUE); return NS_OK; } */ if (GetStateBits() & NS_FRAME_IS_DIRTY) Redraw(aState); RemoveStateBits(NS_FRAME_HAS_DIRTY_CHILDREN | NS_FRAME_IS_DIRTY | NS_FRAME_FIRST_REFLOW | NS_FRAME_IN_REFLOW); nsPresContext* presContext = aState.PresContext(); PRUint32 flags = 0; GetLayoutFlags(flags); PRUint32 stateFlags = aState.LayoutFlags(); flags |= stateFlags; nsRect rect(nsPoint(0, 0), GetSize()); if (ComputesOwnOverflowArea()) { rect = GetOverflowRect(); } else { if (!DoesClipChildren() && !IsCollapsed(aState)) { // See if our child frames caused us to overflow after being laid // out. If so, store the overflow area. This normally can't happen // in XUL, but it can happen with the CSS 'outline' property and // possibly with other exotic stuff (e.g. relatively positioned // frames in HTML inside XUL). nsIFrame* box = GetChildBox(); while (box) { nsRect bounds = box->GetOverflowRect() + box->GetPosition(); rect.UnionRect(rect, bounds); box = box->GetNextBox(); } } FinishAndStoreOverflow(&rect, GetSize()); } nsIView* view = GetView(); if (view) { // Make sure the frame's view is properly sized and positioned and has // things like opacity correct nsHTMLContainerFrame::SyncFrameViewAfterReflow( presContext, this, view, &rect, flags); } return NS_OK; }
void MCScrollbar::SetThumbPos(MCExecContext& ctxt, double p_pos) { update(p_pos, MCM_scrollbar_drag); Redraw(); }
void SpotColor::Sized(Int32 w,Int32 h) { m_w = w; m_h = h; Redraw(); }
void ScreenRecoveryUI::KeyLongPress(int) { // Redraw so that if we're in the menu, the highlight // will change color to indicate a successful long press. Redraw(); }
void SpotColor::UpdateColor(Color color){ SetColor(color); Redraw(); }
//事件指令含义请参阅其他相关文献 void CmdRedraw(sint16** cmd) //0 { if (cmd) (*cmd)++; Redraw(); }
void ESChildSeatStatus::SetZoomFactor(float fZoom, bool bRedraw){ m_fZoom = m_fZoom; if( bRedraw ) Redraw(true); }
int EBuffer::Find(SearchReplaceOptions &opt) { int slen = strlen(opt.strSearch); int Options = opt.Options; int rlen = strlen(opt.strReplace); RxNode *R = NULL; opt.resCount = -1; opt.lastInsertLen = 0; if (slen == 0) return 0; if (Options & SEARCH_BLOCK) { if (CheckBlock() == 0) return 0; } if (Options & SEARCH_RE) { R = RxCompile(opt.strSearch); if (R == 0) { View->MView->Win->Choice(GPC_ERROR, "Find", 1, "O&K", "Invalid regular expression."); return 0; } } if (Options & SEARCH_GLOBAL) { if (Options & SEARCH_BLOCK) { if (Options & SEARCH_BACK) { if (SetPosR(BE.Col, BE.Row) == 0) goto error; } else { if (SetPosR(BB.Col, BB.Row) == 0) goto error; } } else { if (Options & SEARCH_BACK) { if (RCount < 1) goto error; if (SetPosR(LineLen(RCount - 1), RCount - 1) == 0) goto error; } else { if (SetPosR(0, 0) == 0) goto error; } } } opt.resCount = 0; while (1) { if (Options & SEARCH_RE) { if (FindRx(R, opt) == 0) goto end; } else { if (FindStr(opt.strSearch, slen, opt) == 0) goto end; } opt.resCount++; if (opt.Options & SEARCH_REPLACE) { char ask = 'A'; if (!(Options & SEARCH_NASK)) { char ch; while (1) { Draw(VToR(CP.Row), 1); Redraw(); switch (View->MView->Win->Choice(0, "Replace", 5, "&Yes", "&All", "&Once", "&Skip", "&Cancel", "Replace with %s?", opt.strReplace)) { case 0: ch = 'Y'; break; case 1: ch = 'A'; break; case 2: ch = 'O'; break; case 3: ch = 'N'; break; case 4: case -1: default: ch = 'Q'; break; } if (ch == 'Y') { ask = 'Y'; goto ok_rep; } if (ch == 'N') { ask = 'N'; goto ok_rep; } if (ch == 'Q') { ask = 'Q'; goto ok_rep; } if (ch == 'A') { ask = 'A'; goto ok_rep; } if (ch == 'O') { ask = 'O'; goto ok_rep; } } ok_rep: if (ask == 'N') goto try_join; if (ask == 'Q') goto end; if (ask == 'A') Options |= SEARCH_NASK; } if (Options & SEARCH_RE) { PELine L = RLine(Match.Row); int P, R; char *PR = 0; int LR = 0; R = Match.Row; P = Match.Col; P = CharOffset(L, P); if (0 == RxReplace(opt.strReplace, L->Chars, L->Count, MatchRes, &PR, &LR)) { if (DelText(R, Match.Col, MatchLen) == 0) goto error; if (PR && LR > 0) if (InsText(R, Match.Col, LR, PR) == 0) goto error; if (PR) free(PR); rlen = LR; } } else { if (DelText(Match.Row, Match.Col, MatchLen) == 0) goto error; if (InsText(Match.Row, Match.Col, rlen, opt.strReplace) == 0) goto error; // Cursor remains at start of inserted string. If there is recursive // replace pattern, fte can go it infinite loop. // Workaround: Move cursor to end of inserted string opt.lastInsertLen = strlen(opt.strReplace); } if (!(Options & SEARCH_BACK)) { MatchLen = rlen; MatchCount = rlen; } if (ask == 'O') goto end; } try_join: if (Options & SEARCH_JOIN) { char ask = 'A'; if (!(Options & SEARCH_NASK)) { char ch; while (1) { Draw(VToR(CP.Row), 1); Redraw(); switch (View->MView->Win->Choice(0, "Join Line", 5, "&Yes", "&All", "&Once", "&Skip", "&Cancel", "Join lines %d and %d?", 1 + VToR(CP.Row), 1 + VToR(CP.Row) + 1)) { case 0: ch = 'Y'; break; case 1: ch = 'A'; break; case 2: ch = 'O'; break; case 3: ch = 'N'; break; case 4: case -1: default: ch = 'Q'; break; } if (ch == 'Y') { ask = 'Y'; goto ok_join; } if (ch == 'N') { ask = 'N'; goto ok_join; } if (ch == 'Q') { ask = 'Q'; goto ok_join; } if (ch == 'A') { ask = 'A'; goto ok_join; } if (ch == 'O') { ask = 'O'; goto ok_join; } } ok_join: if (ask == 'N') goto try_split; if (ask == 'Q') goto end; if (ask == 'A') Options |= SEARCH_NASK; } if (JoinLine(Match.Row, Match.Col) == 0) goto error; if (ask == 'O') goto end; } try_split: if (Options & SEARCH_SPLIT) { char ask = 'A'; if (!(Options & SEARCH_NASK)) { char ch; while (1) { Draw(VToR(CP.Row), 1); Redraw(); switch(View->MView->Win->Choice(0, "Split Line", 5, "&Yes", "&All", "&Once", "&Skip", "&Cancel", "Split line %d?", VToR(CP.Row))) { case 0: ch = 'Y'; break; case 1: ch = 'A'; break; case 2: ch = 'O'; break; case 3: ch = 'S'; break; case 4: case -1: default: ch = 'Q'; break; } if (ch == 'Y') { ask = 'Y'; goto ok_split; } else if (ch == 'N') { ask = 'N'; goto ok_split; } else if (ch == 'Q') { ask = 'Q'; goto ok_split; } else if (ch == 'A') { ask = 'A'; goto ok_split; } else if (ch == 'O') { ask = 'O'; goto ok_split; } } ok_split: if (ask == 'N') goto try_delete; if (ask == 'Q') goto end; if (ask == 'A') Options |= SEARCH_NASK; } if (SplitLine(Match.Row, Match.Col + strlen(opt.strReplace)) == 0) goto error; if (ask == 'O') goto end; } try_delete: if (Options & SEARCH_DELETE) { char ask = 'A'; if (!(Options & SEARCH_NASK)) { char ch; while (1) { Draw(VToR(CP.Row), 1); Redraw(); switch (View->MView->Win->Choice(0, "Delete Line", 5, "&Yes", "&All", "&Once", "&Skip", "&Cancel", "Delete line %d?", VToR(CP.Row))) { case 0: ch = 'Y'; break; case 1: ch = 'A'; break; case 2: ch = 'O'; break; case 3: ch = 'N'; break; case 4: case -1: default: ch = 'Q'; break; } if (ch == 'Y') { ask = 'Y'; goto ok_delete; } if (ch == 'N') { ask = 'N'; goto ok_delete; } if (ch == 'Q') { ask = 'Q'; goto ok_delete; } if (ch == 'A') { ask = 'A'; goto ok_delete; } if (ch == 'O') { ask = 'O'; goto ok_delete; } } ok_delete: if (ask == 'N') goto next; if (ask == 'Q') goto end; if (ask == 'A') Options |= SEARCH_NASK; } if (Match.Row == RCount - 1) { if (DelText(Match.Row, 0, LineLen()) == 0) goto error; } else if (DelLine(Match.Row) == 0) goto error; if (ask == 'O') goto end; if (!(Options & SEARCH_ALL)) break; goto last; } next: if (!(Options & SEARCH_ALL)) break; Options |= SEARCH_NEXT; last: ; } end: // end of search if (R) RxFree(R); if (Options & SEARCH_ALL) Msg(S_INFO, "%d match(es) found.", opt.resCount); else { if (opt.resCount == 0) { Msg(S_INFO, "[%s] not found", opt.strSearch); return 0; } } return 1; error: if (R) { RxFree(R); } View->MView->Win->Choice(GPC_ERROR, "Find", 1, "O&K", "Error in search/replace."); return 0; }
JBoolean JX3DWidget::HandleRotationKeyPress ( const int key, const JXKeyModifiers& modifiers ) { if (modifiers.meta() && key == kJUpArrow) { return ZoomForWheel(kJXButton4, modifiers); } else if (modifiers.meta() && key == kJDownArrow) { return ZoomForWheel(kJXButton5, modifiers); } const JVector& o = itsCamera->GetAttentionPt(); JVector v = itsCamera->GetPosition() - o; const JFloat r = v.GetLength(); JFloat lat = asin(v.GetElement(3) / r); JFloat lon = atan2(v.GetElement(2), v.GetElement(1)); const JFloat delta = (modifiers.shift() ? kSmallDeltaAngle : (modifiers.control() ? kBigDeltaAngle : kDeltaAngle)); JBoolean moved = kJFalse; if (key == kJUpArrow) { lat += delta; moved = kJTrue; } else if (key == kJDownArrow) { lat -= delta; moved = kJTrue; } else if (key == kJLeftArrow) { lon += delta; moved = kJTrue; } else if (key == kJRightArrow) { lon -= delta; moved = kJTrue; } if (moved) { itsCamera->SetPosition(JVector(3, r * cos(lat) * cos(lon), r * cos(lat) * sin(lon), r * sin(lat))); Redraw(); // key repeats can delay Refresh() return kJTrue; } else { return kJFalse; } }
void CPicWnd::SetBkColor(COLORREF bkColor, BYTE opacity) { m_picDrawer.SetBkColor(bkColor, opacity); Redraw(); }
void JXExprWidget::EIPRedraw() { Redraw(); }
LRESULT CALLBACK WinProc(HWND hWnd, /* I - Window triggering this event */ UINT uMsg, /* I - Message type */ WPARAM wParam, /* I - 'word' parameter value */ LPARAM lParam) /* I - 'long' parameter value */ { PAINTSTRUCT ps; /* WM_PAINT message info */ RECT rect; /* Current client area rectangle */ switch (uMsg) { case WM_CREATE : /* * 'Create' message. Get device and rendering contexts, and * setup the client area for OpenGL drawing... */ DC = GetDC(hWnd); SetupContext(); break; case WM_SIZE : /* * Handle resizes... */ GetClientRect(hWnd, &rect); Resize(rect.right, rect.bottom); case WM_PAINT : /* * Repaint the client area... */ BeginPaint(hWnd, &ps); Redraw(); EndPaint(hWnd, &ps); break; case WM_QUIT : case WM_CLOSE : /* * Destroy the window and exit... */ DestroyWindow(Window); exit(0); break; case WM_DESTROY : /* * Release and free the device context, rendering * context, and color palette... */ if (RC) wglDeleteContext(RC); if (DC) ReleaseDC(Window, DC); if (Palette) DeleteObject(Palette); PostQuitMessage(0); break; case WM_QUERYNEWPALETTE : /* * Realize the color palette if necessary... */ if (Palette) { SelectPalette(DC, Palette, FALSE); RealizePalette(DC); InvalidateRect(hWnd, NULL, FALSE); return (TRUE); } break; case WM_PALETTECHANGED: /* * Reselect our color palette if necessary... */ if (Palette && (HWND)wParam != hWnd) { SelectPalette(DC, Palette, FALSE); RealizePalette(DC); UpdateColors(DC); } break; case WM_CHAR : /* * Handle key presses... */ Keyboard((unsigned char)wParam, 0, 0); break; default : /* * Pass all other messages through the default window * procedure... */ return (DefWindowProc(hWnd, uMsg, wParam, lParam)); } return (FALSE); }
void MCButton::SetArm(MCExecContext& ctxt, bool setting) { if (changestate(setting, CS_ARMED)) Redraw(); }