annotate Navigator.h @ 1:f3fd4e19cec0 tip

first binary upload
author wenx <xue.wen@eecs.qmul.ac.uk>
date Wed, 10 Aug 2011 14:56:28 +0100
parents a6a46af64546
children
rev   line source
xue@0 1 /*
xue@0 2 Harmonic Visualiser
xue@0 3
xue@0 4 An audio file viewer and editor.
xue@0 5 Centre for Digital Music, Queen Mary, University of London.
xue@0 6 This file copyright 2011 Wen Xue.
xue@0 7
xue@0 8 This program is free software; you can redistribute it and/or
xue@0 9 modify it under the terms of the GNU General Public License as
xue@0 10 published by the Free Software Foundation; either version 2 of the
xue@0 11 License, or (at your option) any later version.
xue@0 12 */
xue@0 13 //---------------------------------------------------------------------------
xue@0 14
xue@0 15 #ifndef NavigatorH
xue@0 16 #define NavigatorH
xue@0 17 //---------------------------------------------------------------------------
xue@0 18 /*
xue@0 19 Navigator.cpp implements TNavigator, a VCL control for specifying a rectangular
xue@0 20 area inside a larger rectangular area.
xue@0 21 */
xue@0 22 #include <SysUtils.hpp>
xue@0 23 #include <Classes.hpp>
xue@0 24 #include <Controls.hpp>
xue@0 25 //---------------------------------------------------------------------------
xue@0 26 typedef enum {maNoAction, maMove, maSize} TNavigatorMouseAction;
xue@0 27 typedef enum {htOuter, htLeft, htTopLeft, htTop, htTopRight, htRight, htBottomRight, htBottom, htBottomLeft, htInner} TNavigatorHitTest;
xue@0 28
xue@0 29 class PACKAGE TNavigator : public TCustomControl
xue@0 30 {
xue@0 31 private:
xue@0 32 int X0;
xue@0 33 int Y0;
xue@0 34 int XL;
xue@0 35 int YL;
xue@0 36 double x01;
xue@0 37 double x02;
xue@0 38 double y01;
xue@0 39 double y02;
xue@0 40 int X1;
xue@0 41 int X2;
xue@0 42 int Y1;
xue@0 43 int Y2;
xue@0 44 TNavigatorMouseAction FMouseAction;
xue@0 45 TNavigatorHitTest FHitTest;
xue@0 46 TNotifyEvent FOnAreaChange;
xue@0 47 TNotifyEvent FOnBackground;
xue@0 48 protected:
xue@0 49 TNavigatorHitTest HitTest(int X, int Y);
xue@0 50 virtual void __fastcall Paint();
xue@0 51 DYNAMIC void __fastcall MouseDown(TMouseButton, TShiftState, int, int);
xue@0 52 DYNAMIC void __fastcall MouseMove(TShiftState, int, int);
xue@0 53 DYNAMIC void __fastcall MouseUp(TMouseButton, TShiftState, int, int);
xue@0 54 public:
xue@0 55 Graphics::TBitmap* BkgBmp;
xue@0 56
xue@0 57 double x1;
xue@0 58 double x2;
xue@0 59 double y1;
xue@0 60 double y2;
xue@0 61
xue@0 62 TColor AreaColorX;
xue@0 63 __property Canvas;
xue@0 64
xue@0 65 __fastcall TNavigator(TComponent* Owner);
xue@0 66 __fastcall ~TNavigator();
xue@0 67 void DrawArea();
xue@0 68 DYNAMIC void __fastcall Resize();
xue@0 69 void SetArea(double, double, double, double);
xue@0 70
xue@0 71 __published:
xue@0 72 __property TNotifyEvent OnAreaChange={read=FOnAreaChange, write=FOnAreaChange};
xue@0 73 __property TNotifyEvent OnBackground={read=FOnBackground, write=FOnBackground};
xue@0 74 __property PopupMenu;
xue@0 75
xue@0 76 };
xue@0 77 //---------------------------------------------------------------------------
xue@0 78 #endif