本文整理汇总了C++中Parent函数的典型用法代码示例。如果您正苦于以下问题:C++ Parent函数的具体用法?C++ Parent怎么用?C++ Parent使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Parent函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: Parent
/*--------------------------------------------------------------------------*/
void PegGroup::Draw(void)
{
#ifdef PEG_UNICODE
PEGCHAR cTest[2] = {'E', '\0'};
#else
PEGCHAR cTest[] = "E";
#endif
if (Parent())
{
muColors[PCI_NORMAL] = Parent()->muColors[PCI_NORMAL];
}
BeginDraw();
PegColor Color(muColors[PCI_NORMAL], muColors[PCI_NORMAL], CF_FILL);
Rectangle(mClient, Color, 0);
Color.Set(PCLR_LOWLIGHT, PCLR_LOWLIGHT, CF_NONE);
Color.uForeground = PCLR_LOWLIGHT;
SIGNED iTextLeft = mReal.wLeft + TextWidth(cTest, mpFont);
SIGNED iTextRight = iTextLeft + TextWidth(mpText, mpFont) + 4;
if(mpText)
{
Line(mReal.wLeft, mClient.wTop - 2, iTextLeft,
mClient.wTop - 2, Color);
Line(iTextRight, mClient.wTop - 2, mReal.wRight,
mClient.wTop - 2, Color);
}
else
{
Line(mReal.wLeft, mClient.wTop - 2, mReal.wRight,
mClient.wTop - 2, Color);
}
Line(mReal.wLeft, mClient.wTop - 1, mReal.wLeft,
mReal.wBottom, Color);
Line(mReal.wLeft + 1, mReal.wBottom - 1,
mReal.wRight - 1, mReal.wBottom - 1, Color);
Line(mReal.wRight - 1, mClient.wTop - 2,
mReal.wRight - 1, mReal.wBottom - 1, Color);
Color.uForeground = PCLR_HIGHLIGHT;
if(mpText)
{
Line(mReal.wLeft + 1, mClient.wTop - 1, iTextLeft,
mClient.wTop - 1, Color);
Line(iTextRight, mClient.wTop - 1, mReal.wRight - 2,
mClient.wTop - 1, Color);
}
else
{
Line(mReal.wLeft + 1, mClient.wTop - 1, mReal.wRight - 2,
mClient.wTop - 1, Color);
}
Line(mReal.wLeft + 1, mClient.wTop, mReal.wLeft + 1,
mReal.wBottom - 1, Color);
Line(mReal.wLeft, mReal.wBottom, mReal.wRight,
mReal.wBottom, Color);
Line(mReal.wRight, mClient.wTop - 2, mReal.wRight,
mReal.wBottom, Color);
if(mpText)
{
if (mwStyle & AF_ENABLED)
{
Color.uForeground = muColors[PCI_NTEXT];
}
else
{
Color.uForeground = PCLR_LOWLIGHT;
}
PegPoint Put;
Put.x = iTextLeft + 2;
Put.y = mReal.wTop;
DrawText(Put, mpText, Color, mpFont);
}
PegThing::Draw(); // to draw children
EndDraw();
}
开发者ID:garyqinyu,项目名称:abv,代码行数:83,代码来源:pgroup.cpp
示例2: GetParent
CTaxon1Node* GetParent()
{
return static_cast<CTaxon1Node*>(Parent());
}
开发者ID:swuecho,项目名称:igblast,代码行数:4,代码来源:cache.hpp
示例3: Parent
float IGradientModificationStrategy::QValue(int i, int j) {
return Parent()->QValue(i, j);
}
开发者ID:rizar,项目名称:svs,代码行数:3,代码来源:newsvm.cpp
示例4: Parent
void EDA_3D_CANVAS::TakeScreenshot( wxCommandEvent& event )
{
static wxFileName fn; // Remember path between saves during this session only.
wxString FullFileName;
wxString file_ext, mask;
bool fmt_is_jpeg = false;
// First time path is set to the project path.
if( !fn.IsOk() )
fn = Parent()->Prj().GetProjectFullName();
if( event.GetId() == ID_MENU_SCREENCOPY_JPEG )
fmt_is_jpeg = true;
if( event.GetId() != ID_TOOL_SCREENCOPY_TOCLIBBOARD )
{
file_ext = fmt_is_jpeg ? wxT( "jpg" ) : wxT( "png" );
mask = wxT( "*." ) + file_ext;
fn.SetExt( file_ext );
FullFileName = EDA_FileSelector( _( "3D Image File Name:" ), fn.GetPath(),
fn.GetFullName(), file_ext, mask, this,
wxFD_SAVE | wxFD_OVERWRITE_PROMPT, true );
if( FullFileName.IsEmpty() )
return;
fn = FullFileName;
// Be sure the screen area destroyed by the file dialog is redrawn before making
// a screen copy.
// Without this call, under Linux the screen refresh is made to late.
wxYield();
}
struct viewport_params
{
GLint originx;
GLint originy;
GLint x;
GLint y;
} viewport;
// Be sure we have the latest 3D view (remember 3D view is buffered)
Refresh();
wxYield();
// Build image from the 3D buffer
wxWindowUpdateLocker noUpdates( this );
glGetIntegerv( GL_VIEWPORT, (GLint*) &viewport );
unsigned char* pixelbuffer = (unsigned char*) malloc( viewport.x * viewport.y * 3 );
unsigned char* alphabuffer = (unsigned char*) malloc( viewport.x * viewport.y );
wxImage image( viewport.x, viewport.y );
glPixelStorei( GL_PACK_ALIGNMENT, 1 );
glReadBuffer( GL_BACK_LEFT );
glReadPixels( viewport.originx, viewport.originy,
viewport.x, viewport.y,
GL_RGB, GL_UNSIGNED_BYTE, pixelbuffer );
glReadPixels( viewport.originx, viewport.originy,
viewport.x, viewport.y,
GL_ALPHA, GL_UNSIGNED_BYTE, alphabuffer );
image.SetData( pixelbuffer );
image.SetAlpha( alphabuffer );
image = image.Mirror( false );
wxBitmap bitmap( image );
if( event.GetId() == ID_TOOL_SCREENCOPY_TOCLIBBOARD )
{
if( wxTheClipboard->Open() )
{
wxBitmapDataObject* dobjBmp = new wxBitmapDataObject( bitmap );
if( !wxTheClipboard->SetData( dobjBmp ) )
wxMessageBox( _( "Failed to copy image to clipboard" ) );
wxTheClipboard->Flush(); /* the data in clipboard will stay
* available after the application exits */
wxTheClipboard->Close();
}
}
else
{
wxImage image = bitmap.ConvertToImage();
if( !image.SaveFile( FullFileName,
fmt_is_jpeg ? wxBITMAP_TYPE_JPEG : wxBITMAP_TYPE_PNG ) )
wxMessageBox( _( "Can't save file" ) );
image.Destroy();
}
}
开发者ID:BTR1,项目名称:kicad-source-mirror,代码行数:94,代码来源:3d_canvas.cpp
示例5: Parent
INFO3D_VISU& EDA_3D_CANVAS::GetPrm3DVisu() const
{
return Parent()->GetPrm3DVisu();
}
开发者ID:natsfr,项目名称:kicad,代码行数:4,代码来源:3d_draw_helper_functions.cpp
示例6: write_port
// Update
void
ColorSlider::Update(int depth)
{
// depth: 0 = onscreen only, 1 = bitmap 1, 2 = bitmap 0
if (depth == 2) {
write_port(fUpdatePort, MSG_UPDATE, NULL, 0);
return;
}
if (!Parent())
return;
fBgBitmap->Lock();
// BRect r(fBgView->Bounds());
BRect r(Bounds());
BRect bounds(r);
if (fOrientation == B_VERTICAL) {
// r.OffsetBy(-8.0, -2.0);
r.InsetBy(6.0, 3.0);
// bounds.Set(-8.0, -2.0, r.right - 8.0, r.bottom - 2.0);
// bounds.OffsetBy(8.0, 2.0);
} else {
// r.OffsetBy(-2.0, -2.0);
// bounds.Set(-2.0, -2.0, r.right - 2.0, r.bottom - 2.0);
// bounds.OffsetBy(2.0, 2.0);
}
fBgBitmap->Unlock();
rgb_color background = ui_color(B_PANEL_BACKGROUND_COLOR);
rgb_color shadow = tint_color(background, B_DARKEN_1_TINT);
rgb_color darkShadow = tint_color(background, B_DARKEN_3_TINT);
rgb_color light = tint_color(background, B_LIGHTEN_MAX_TINT);
if (depth >= 1) {
fBgBitmap->Lock();
// frame
stroke_frame(fBgView, r, shadow, shadow, light, light);
r.InsetBy(1.0, 1.0);
stroke_frame(fBgView, r, darkShadow, darkShadow, background, background);
if (fOrientation == B_VERTICAL) {
// clear area left and right from slider
fBgView->SetHighColor( background );
fBgView->FillRect( BRect(bounds.left, bounds.top, bounds.left + 5.0, bounds.bottom) );
fBgView->FillRect( BRect(bounds.right - 5.0, bounds.top, bounds.right, bounds.bottom) );
}
/*
// marker
if (fOrientation == B_VERTICAL) {
// clear area left and right from slider
fBgView->SetHighColor( background );
fBgView->FillRect( BRect(bounds.left, bounds.top, bounds.left + 5.0, bounds.bottom) );
fBgView->FillRect( BRect(bounds.right - 5.0, bounds.top, bounds.right, bounds.bottom) );
// draw the triangle markers
fBgView->SetHighColor( 0, 0, 0 );
float value = Value();
fBgView->StrokeLine( BPoint(bounds.left, value - 2.0), BPoint(bounds.left + 5.0, value + 3.0));
fBgView->StrokeLine( BPoint(bounds.left, value + 8.0));
fBgView->StrokeLine( BPoint(bounds.left, value - 2.0));
fBgView->StrokeLine( BPoint(bounds.right, value - 2.0), BPoint(bounds.right - 5.0, value + 3.0));
fBgView->StrokeLine( BPoint(bounds.right, value + 8.0));
fBgView->StrokeLine( BPoint(bounds.right, value - 2.0));
} else {
r.InsetBy(1.0, 1.0);
float value = (Value() / 255.0) * (bounds.Width() - 4.0);
if (value - 2 > r.left) {
fBgView->SetHighColor( 255, 255, 255 );
fBgView->StrokeLine( BPoint(value - 2, bounds.top + 2.0),
BPoint(value - 2, bounds.bottom - 2.0));
}
if (value - 1 > r.left) {
fBgView->SetHighColor( 0, 0, 0 );
fBgView->StrokeLine( BPoint(value - 1, bounds.top + 2.0),
BPoint(value - 1, bounds.bottom - 2.0));
}
if (value + 1 < r.right) {
fBgView->SetHighColor( 0, 0, 0 );
fBgView->StrokeLine( BPoint(value + 1, bounds.top + 2.0),
BPoint(value + 1, bounds.bottom - 2.0));
}
if (value + 2 < r.right) {
fBgView->SetHighColor( 255, 255, 255 );
fBgView->StrokeLine( BPoint(value + 2, bounds.top + 2.0),
BPoint(value + 2, bounds.bottom - 2.0));
}
}*/
fBgView->Sync();
fBgBitmap->Unlock();
} else
r.InsetBy(1.0, 1.0);
//.........这里部分代码省略.........
开发者ID:stippi,项目名称:Clockwerk,代码行数:101,代码来源:ColorSlider.cpp
示例7: SetViewColor
void IconsView::AttachedToWindow() {
if( Parent() )
SetViewColor( Parent()->ViewColor() );
else
SetViewColor( 255, 255, 255 );
}
开发者ID:louisdem,项目名称:beos-begadu,代码行数:6,代码来源:Description.cpp
示例8: SetViewColor
void
_MediaSlider_::AttachedToWindow()
{
SetViewColor(Parent()->ViewColor());
}
开发者ID:HaikuArchives,项目名称:VirtualBeLive,代码行数:5,代码来源:MediaSlider.cpp
示例9: getPayload
void FarDlgNode::BeforeLoad()
{
getPayload().setDialog(Parent()->getPayload().getDialog());
}
开发者ID:Release,项目名称:filecopyex3,代码行数:4,代码来源:FarNode.cpp
示例10: pushParent
void RenderTreeUpdater::pushParent(Element& element, Style::Change changeType)
{
m_parentStack.append(Parent(element, changeType));
updateBeforeOrAfterPseudoElement(element, BEFORE);
}
开发者ID:edcwconan,项目名称:webkit,代码行数:6,代码来源:RenderTreeUpdater.cpp
示例11: SetViewColor
void
ConnectionOptionsView::AttachedToWindow()
{
SetViewColor(Parent()->ViewColor());
fDialOnDemand->SetTarget(this);
}
开发者ID:mariuz,项目名称:haiku,代码行数:6,代码来源:ConnectionOptionsAddon.cpp
示例12: Parent
// ----------------------------------------------------------------------------
//
// ----------------------------------------------------------------------------
void ConfigGroup::SetDirty()
{
m_bDirty = TRUE;
if ( Parent() != NULL ) // propagate upwards
Parent()->SetDirty();
}
开发者ID:TimofonicJunkRoom,项目名称:plucker,代码行数:9,代码来源:fileconf.cpp
示例13: Parent
void
PowerStatusView::Draw(BRect updateRect)
{
bool drawBackground = Parent() == NULL
|| (Parent()->Flags() & B_DRAW_ON_CHILDREN) == 0;
if (drawBackground)
FillRect(updateRect, B_SOLID_LOW);
float aspect = Bounds().Width() / Bounds().Height();
bool below = aspect <= 1.0f;
font_height fontHeight;
GetFontHeight(&fontHeight);
float baseLine = ceilf(fontHeight.ascent);
char text[64];
_SetLabel(text, sizeof(text));
float textHeight = ceilf(fontHeight.descent + fontHeight.ascent);
float textWidth = StringWidth(text);
bool showLabel = fShowLabel && text[0];
BRect iconRect;
if (fShowStatusIcon) {
iconRect = Bounds();
if (showLabel) {
if (below)
iconRect.bottom -= textHeight + 4;
else
iconRect.right -= textWidth + 4;
}
// make a square
iconRect.bottom = min_c(iconRect.bottom, iconRect.right);
iconRect.right = iconRect.bottom;
if (iconRect.Width() + 1 >= kMinIconWidth
&& iconRect.Height() + 1 >= kMinIconHeight) {
_DrawBattery(iconRect);
} else {
// there is not enough space for the icon
iconRect.Set(0, 0, -1, -1);
}
}
if (showLabel) {
BPoint point(0, baseLine);
if (iconRect.IsValid()) {
if (below) {
point.x = (iconRect.Width() - textWidth) / 2;
point.y += iconRect.Height() + 2;
} else {
point.x = iconRect.Width() + 2;
point.y += (iconRect.Height() - textHeight) / 2;
}
} else {
point.x = (Bounds().Width() - textWidth) / 2;
point.y += (Bounds().Height() - textHeight) / 2;
}
if (drawBackground)
SetHighColor(ui_color(B_CONTROL_TEXT_COLOR));
else {
SetDrawingMode(B_OP_OVER);
rgb_color c = Parent()->LowColor();
if (c.red + c.green + c.blue > 128 * 3)
SetHighColor(0, 0, 0);
else
SetHighColor(255, 255, 255);
}
DrawString(text, point);
}
}
开发者ID:RTOSkit,项目名称:haiku,代码行数:76,代码来源:PowerStatusView.cpp
示例14: SetViewColor
void
IPCPView::AttachedToWindow()
{
SetViewColor(Parent()->ViewColor());
fIsEnabled->SetTarget(this);
}
开发者ID:mariuz,项目名称:haiku,代码行数:6,代码来源:IPCPAddon.cpp
示例15: AttachedToWindow
void ArpTwoStateButton::AttachedToWindow()
{
inherited::AttachedToWindow();
if( Parent() ) SetViewColor( Parent()->ViewColor() );
}
开发者ID:HaikuArchives,项目名称:Sequitur,代码行数:5,代码来源:ArpTwoStateButton.cpp
示例16: wxT
void EDA_3D_VIEWER::takeScreenshot( wxCommandEvent& event )
{
wxString fullFileName;
bool fmt_is_jpeg = false;
if( event.GetId() == ID_MENU_SCREENCOPY_JPEG )
fmt_is_jpeg = true;
if( event.GetId() != ID_TOOL_SCREENCOPY_TOCLIBBOARD )
{
// Remember path between saves during this session only.
static wxFileName fn;
const wxString file_ext = fmt_is_jpeg ? wxT( "jpg" ) : wxT( "png" );
const wxString mask = wxT( "*." ) + file_ext;
// First time path is set to the project path.
if( !fn.IsOk() )
fn = Parent()->Prj().GetProjectFullName();
fn.SetExt( file_ext );
fullFileName = EDA_FILE_SELECTOR( _( "3D Image File Name:" ), fn.GetPath(),
m_defaultFileName, file_ext, mask, this,
wxFD_SAVE | wxFD_OVERWRITE_PROMPT, true );
if( fullFileName.IsEmpty() )
return;
fn = fullFileName;
// Be sure the screen area destroyed by the file dialog is redrawn
// before making a screen copy.
// Without this call, under Linux the screen refresh is made to late.
wxYield();
}
// Be sure we have the latest 3D view (remember 3D view is buffered)
Refresh();
wxYield();
// Build image from the 3D buffer
wxWindowUpdateLocker noUpdates( this );
wxImage screenshotImage;
if( m_canvas )
m_canvas->GetScreenshot( screenshotImage );
if( event.GetId() == ID_TOOL_SCREENCOPY_TOCLIBBOARD )
{
wxBitmap bitmap( screenshotImage );
if( wxTheClipboard->Open() )
{
wxBitmapDataObject* dobjBmp = new wxBitmapDataObject( bitmap );
if( !wxTheClipboard->SetData( dobjBmp ) )
wxMessageBox( _( "Failed to copy image to clipboard" ) );
wxTheClipboard->Flush(); /* the data in clipboard will stay
* available after the application exits */
wxTheClipboard->Close();
}
}
else
{
if( !screenshotImage.SaveFile( fullFileName,
fmt_is_jpeg ? wxBITMAP_TYPE_JPEG : wxBITMAP_TYPE_PNG ) )
wxMessageBox( _( "Can't save file" ) );
screenshotImage.Destroy();
}
}
开发者ID:cpavlina,项目名称:kicad,代码行数:74,代码来源:eda_3d_viewer.cpp
示例17: ExecShortcutFolder
int QuickView::ProcessKey(const Manager::Key& Key)
{
int LocalKey=Key.FarKey;
if (!IsVisible())
return FALSE;
if (LocalKey>=KEY_RCTRL0 && LocalKey<=KEY_RCTRL9)
{
ExecShortcutFolder(LocalKey-KEY_RCTRL0);
return TRUE;
}
if (LocalKey == KEY_F1)
{
Help::create(L"QViewPanel");
return TRUE;
}
if (LocalKey==KEY_F3 || LocalKey==KEY_NUMPAD5 || LocalKey == KEY_SHIFTNUMPAD5)
{
auto AnotherPanel = Parent()->GetAnotherPanel(this);
if (AnotherPanel->GetType()==FILE_PANEL)
AnotherPanel->ProcessKey(Manager::Key(KEY_F3));
return TRUE;
}
if (LocalKey==KEY_ADD || LocalKey==KEY_SUBTRACT)
{
auto AnotherPanel = Parent()->GetAnotherPanel(this);
if (AnotherPanel->GetType()==FILE_PANEL)
AnotherPanel->ProcessKey(Manager::Key(LocalKey==KEY_ADD?KEY_DOWN:KEY_UP));
return TRUE;
}
if (QView && !Directory && LocalKey>=256)
{
int ret = QView->ProcessKey(Manager::Key(LocalKey));
if (LocalKey == KEY_F2 || LocalKey == KEY_SHIFTF2
|| LocalKey == KEY_F4 || LocalKey == KEY_SHIFTF4
|| LocalKey == KEY_F8 || LocalKey == KEY_SHIFTF8)
{
DynamicUpdateKeyBar();
Parent()->GetKeybar().Redraw();
}
if (LocalKey == KEY_F7 || LocalKey == KEY_SHIFTF7)
{
//__int64 Pos;
//int Length;
//DWORD Flags;
//QView->GetSelectedParam(Pos,Length,Flags);
Redraw();
Parent()->GetAnotherPanel(this)->Redraw();
//QView->SelectText(Pos,Length,Flags|1);
}
return ret;
}
return FALSE;
}
开发者ID:Frankie-666,项目名称:farmanager,代码行数:66,代码来源:qview.cpp
示例18: errorReporter
void EDA_3D_CANVAS::Redraw()
{
// SwapBuffer requires the window to be shown before calling
if( !IsShownOnScreen() )
return;
wxString err_messages;
WX_STRING_REPORTER errorReporter( &err_messages );
STATUS_TEXT_REPORTER activityReporter( Parent(), 0 );
// Display build time at the end of build
unsigned strtime = GetRunningMicroSecs();
GL_CONTEXT_MANAGER::Get().LockCtx( m_glRC, this );
// Set the OpenGL viewport according to the client size of this canvas.
// This is done here rather than in a wxSizeEvent handler because our
// OpenGL rendering context (and thus viewport setting) is used with
// multiple canvases: If we updated the viewport in the wxSizeEvent
// handler, changing the size of one canvas causes a viewport setting that
// is wrong when next another canvas is repainted.
wxSize size = GetClientSize();
InitGL();
if( isRealisticMode() && isEnabled( FL_RENDER_SHADOWS ) )
{
generateFakeShadowsTextures( &errorReporter, &activityReporter );
}
// *MUST* be called *after* GL_CONTEXT_MANAGER::LockCtx():
glViewport( 0, 0, size.x, size.y );
// clear color and depth buffers
glClearColor( 0.95, 0.95, 1.0, 1.0 );
glClearStencil( 0 );
glClearDepth( 1.0 );
glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT );
glShadeModel( GL_SMOOTH );
// Draw background
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
glDisable( GL_LIGHTING );
glDisable( GL_COLOR_MATERIAL );
glDisable( GL_DEPTH_TEST );
glDisable( GL_TEXTURE_2D );
// Draw the background ( rectangle with color gradient)
glBegin( GL_QUADS );
SetGLColor( GetPrm3DVisu().m_BgColor_Top, 1.0 );
glVertex2f( -1.0, 1.0 ); // Top left corner
SetGLColor( GetPrm3DVisu().m_BgColor, 1.0 );
glVertex2f( -1.0,-1.0 ); // bottom left corner
glVertex2f( 1.0,-1.0 ); // bottom right corner
SetGLColor( GetPrm3DVisu().m_BgColor_Top, 1.0 );
glVertex2f( 1.0, 1.0 ); // top right corner
glEnd();
glEnable( GL_DEPTH_TEST );
// set viewing projection
glMatrixMode( GL_PROJECTION );
glLoadIdentity();
#define MAX_VIEW_ANGLE 160.0 / 45.0
if( GetPrm3DVisu().m_Zoom > MAX_VIEW_ANGLE )
GetPrm3DVisu().m_Zoom = MAX_VIEW_ANGLE;
if( Parent()->ModeIsOrtho() )
{
// OrthoReductionFactor is chosen to provide roughly the same size as
// Perspective View
const double orthoReductionFactor = 400 / GetPrm3DVisu().m_Zoom;
// Initialize Projection Matrix for Ortographic View
glOrtho( -size.x / orthoReductionFactor, size.x / orthoReductionFactor,
-size.y / orthoReductionFactor, size.y / orthoReductionFactor, 1, 100 );
}
else
{
// Ratio width / height of the window display
double ratio_HV = (double) size.x / size.y;
// Initialize Projection Matrix for Perspective View
gluPerspective( 45.0f * GetPrm3DVisu().m_Zoom, ratio_HV, 1, 100 );
}
// position viewer
glMatrixMode( GL_MODELVIEW );
glLoadIdentity();
//.........这里部分代码省略.........
开发者ID:CastMi,项目名称:kicad-source-mirror,代码行数:101,代码来源:3d_draw.cpp
示例19: CloseFile
void QuickView::ShowFile(const string& FileName, bool TempFile, PluginHandle* hDirPlugin)
{
CloseFile();
if (!IsVisible())
return;
if (FileName.empty())
{
ProcessingPluginCommand++;
Show();
ProcessingPluginCommand--;
return;
}
string FileFullName = FileName;
if (!hDirPlugin) ConvertNameToFull(FileFullName, FileFullName);
bool SameFile = strCurFileName == FileFullName;
strCurFileName = FileFullName;
size_t pos = strCurFileName.rfind(L'.');
if (pos != string::npos)
{
string strValue;
if (GetShellType(strCurFileName.data()+pos, strValue))
{
api::reg::GetValue(HKEY_CLASSES_ROOT, strValue, L"", strCurFileType);
}
}
if (hDirPlugin || api::fs::is_directory(strCurFileName))
{
// Не показывать тип файла для каталогов в "Быстром просмотре"
strCurFileType.clear();
if (SameFile && !hDirPlugin)
{
Directory=1;
}
else if (hDirPlugin)
{
int ExitCode=GetPluginDirInfo(hDirPlugin,strCurFileName,Data.DirCount,
Data.FileCount,Data.FileSize,Data.AllocationSize);
Directory = (ExitCode ? 4 : 3);
uncomplete_dirscan = (ExitCode == 0);
}
else
{
int ExitCode=GetDirInfo(MSG(MQuickViewTitle), strCurFileName, Data, getdirinfo_default_delay, nullptr, GETDIRINFO_ENHBREAK|GETDIRINFO_SCANSYMLINKDEF|GETDIRINFO_NOREDRAW);
Directory = (ExitCode == -1 ? 2 : 1); // ExitCode: 1=done; 0=Esc,CtrlBreak; -1=Other
uncomplete_dirscan = ExitCode != 1;
}
}
else
{
if (!strCurFileName.empty())
{
QView.reset(new Viewer(GetOwner(), true));
QView->SetRestoreScreenMode(false);
QView->SetPosition(m_X1+1,m_Y1+1,m_X2-1,m_Y2-3);
QView->SetStatusMode(0);
QView->EnableHideCursor(0);
OldWrapMode = QView->GetWrapMode();
OldWrapType = QView->GetWrapType();
QView->SetWrapMode(LastWrapMode);
QView->SetWrapType(LastWrapType);
QView->OpenFile(strCurFileName,FALSE);
}
}
if (this->Destroyed())
return;
m_TemporaryFile = TempFile;
Redraw();
if (Parent()->ActivePanel() == this)
{
DynamicUpdateKeyBar();
Parent()->GetKeybar().Redraw();
}
}
开发者ID:Frankie-666,项目名称:farmanager,代码行数:84,代码来源:qview.cpp
示例20: switch
void
BComboBox::TextInput::KeyDown(const char *bytes, int32 numBytes)
{
BComboBox* cb;
uchar aKey = bytes[0];
switch (aKey) {
case B_RETURN:
cb = dynamic_cast<BComboBox*>(Parent());
ASSERT(cb);
if (!cb->IsEnabled())
break;
ASSERT(fInitialText);
if (strcmp(fInitialText, Text()) != 0)
cb->CommitValue();
free(fInitialText);
fInitialText = strdup(Text());
{
int32 end = TextLength();
Select(end, end);
}
// hide popup window if it's showing when the user presses the
// enter key
if (cb->fPopupWindow && cb->fPopupWindow->Lock()) {
if (!cb->fPopupWindow->IsHidden()) {
cb->HidePopupWindow();
}
cb->fPopupWindow->Unlock();
}
break;
case B_TAB:
// cb = dynamic_cast<BComboBox*>Parent());
// ASSERT(cb);
// if (cb->fAutoComplete && cb->fCompletionIndex >= 0) {
// int32 from, to;
// cb->fText->GetSelection(&from, &to);
// if (from == to) {
// // HACK: this should never happen. The rest of the class
// // should be fixed so that fCompletionIndex is set to -1 if the
// // text is modified
// printf("BComboBox::TextInput::KeyDown() -- HACK! this shouldn't happen!");
// cb->fCompletionIndex = -1;
// }
//
// const char *text = cb->fText->Text();
// BString prefix;
// prefix.Append(text, from);
//
// int32 match;
// const char *completion;
// if (cb->fChoiceList->GetMatch( prefix.String(),
// cb->fCompletionIndex + 1,
// &match,
// &completion) == B_OK)
// {
// cb->fText->Delete(); // delete the selection
// cb->fText->Insert(completion);
// cb->fText->Select(from, from + strlen(completion));
// cb->fCompletionIndex = match;
// cb->Select(cb->fCompletionIndex);
// } else {
// //system_beep();
// }
// } else {
BView::KeyDown(bytes, numBytes);
// }
break;
#if 0
case B_UP_ARROW: // fall through
case B_DOWN_ARROW:
cb = dynamic_cast<BComboBox*>(Parent());
ASSERT(cb);
if (cb->fChoiceList) {
cb = dynamic_cast<BComboBox*>(Parent());
ASSERT(cb);
if (!(cb->fPopupWindow)) {
cb->fPopupWindow = cb->CreatePopupWindow();
}
if (cb->fPopupWindow->Lock()) {
// show popup window, if needed
if (cb->fPopupWindow->IsHidden()) {
cb->ShowPopupWindow();
} else {
printf("Whoa!!! Erroneously got up/down arrow key down in TextInput::KeyDown()!\n");
}
int32 index = cb->CurrentSelection();
int32 choices = cb->fChoiceList->CountChoices();
// select something, if no selection
if (index < 0 && choices > 0) {
if (aKey == B_UP_ARROW) {
cb->Select(choices - 1);
} else {
cb->Select(0);
}
}
cb->fPopupWindow->Unlock();
}
}
//.........这里部分代码省略.........
开发者ID:anevilyak,项目名称:haiku,代码行数:101,代码来源:ComboBox.cpp
注:本文中的Parent函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论