Ticket #3041: MainWin.cpp_r28723.diff

File MainWin.cpp_r28723.diff, 1.6 KB (added by oco, 16 years ago)
  • MainWin.cpp

     
    9090 ,  fFrameResizedTriggeredAutomatically(false)
    9191 ,  fIgnoreFrameResized(false)
    9292 ,  fFrameResizedCalled(true)
     93 ,  fWindowCentered(false)
    9394{
    9495    BRect rect = Bounds();
    9596
     
    508509
    509510
    510511void
     512MainWin::Show()
     513{
     514    _CenterWindow();
     515    BWindow::Show();
     516}
     517
     518
     519void
    511520MainWin::VideoFormatChange(int width, int height, float width_scale, float height_scale)
    512521{
    513522    // called when video format or aspect ratio changes
     
    11751184            }
    11761185    }
    11771186}
     1187
     1188
     1189void
     1190MainWin::_CenterWindow()
     1191{
     1192    if (fWindowCentered)
     1193        return;
     1194    fWindowCentered = true;
     1195   
     1196    BScreen screen(this);
     1197    if (!screen.IsValid())
     1198        return;
     1199       
     1200    BRect frame = screen.Frame();
     1201    BRect windowFrame = Frame();
     1202   
     1203    float left = floor((frame.Width() - windowFrame.Width()) / 2);
     1204    float top = floor((frame.Height() - windowFrame.Height()) / 2);
     1205   
     1206    if (left < 20)
     1207        left = 20;
     1208    if (top < 20)
     1209        top = 20;
     1210   
     1211    MoveTo(left, top); 
     1212}
  • MainWin.h

     
    6161
    6262    void                SetInterfaceMenuMarker();
    6363    void                SetChannelMenuMarker();
     64
     65    virtual void        Show();
    6466   
    6567    void                VideoFormatChange(int width, int height, float width_scale, float height_scale);
    6668
     
    106108    bool                fFrameResizedTriggeredAutomatically;
    107109    bool                fIgnoreFrameResized;
    108110    bool                fFrameResizedCalled;
     111
     112private:
     113
     114    void _CenterWindow();
     115   
     116    bool fWindowCentered;
    109117};
    110118
    111119#endif