rainmeter-studio/Library/MeterButton.h
spx 64888434c9 - Added !RainmeterWriteKeyValue. (based on MattKing's code)
!RainmeterWriteKeyValue "Section" "Key" "Value" ("FileSpec"), where "FileSpec" is an optional parameter. If FileSpec is not present, the change is automatically done in the currently running skin file. If the bang is executed from command line, FileSpec is required.

- Some improvements of MouseOver/Leave detection.

- Fixed the issue that window dragging brings on MouseLeave if "Show window contents while dragging" is not set.
- Fixed the issue that window dragging can't be begun by dragging the Button.
- Fixed the issue that a reaction of the upper Button penetrates to the lower Buttons or the other window.
2010-08-03 15:10:42 +00:00

55 lines
1.6 KiB
C++

/*
Copyright (C) 2005 Kimmo Pekkola
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
#ifndef __METERBUTTON_H__
#define __METERBUTTON_H__
#include "Meter.h"
#include "MeterWindow.h"
#define BUTTON_FRAMES 3
class CMeterButton : public CMeter
{
public:
CMeterButton(CMeterWindow* meterWindow);
virtual ~CMeterButton();
virtual void ReadConfig(const WCHAR* section);
virtual void Initialize();
virtual bool Update();
virtual bool Draw(Gdiplus::Graphics& graphics);
virtual void BindMeasure(std::list<CMeasure*>& measures);
bool MouseMove(POINT pos);
bool MouseUp(POINT pos, CMeterWindow* window);
bool MouseDown(POINT pos);
private:
bool HitTest2(int px, int py, bool checkAlpha);
Gdiplus::Bitmap* m_Bitmap; // The bitmap
Gdiplus::CachedBitmap* m_Bitmaps[BUTTON_FRAMES]; // The cached bitmaps
std::wstring m_ImageName; // Name of the image
std::wstring m_Command; // Command to be executed
int m_State;
bool m_Clicked;
};
#endif