#pragma hdrstop
#endif
-#include "wx/ribbon/gallery.h"
-
#if wxUSE_RIBBON
+#include "wx/ribbon/gallery.h"
#include "wx/ribbon/art.h"
#include "wx/ribbon/bar.h"
#include "wx/dcbuffer.h"
wxDEFINE_EVENT(wxEVT_COMMAND_RIBBONGALLERY_HOVER_CHANGED, wxRibbonGalleryEvent);
wxDEFINE_EVENT(wxEVT_COMMAND_RIBBONGALLERY_SELECTED, wxRibbonGalleryEvent);
+wxDEFINE_EVENT(wxEVT_COMMAND_RIBBONGALLERY_CLICKED, wxRibbonGalleryEvent);
IMPLEMENT_DYNAMIC_CLASS(wxRibbonGalleryEvent, wxCommandEvent)
IMPLEMENT_CLASS(wxRibbonGallery, wxRibbonControl)
notification.SetGalleryItem(m_selected_item);
ProcessWindowEvent(notification);
}
+
+ wxRibbonGalleryEvent notification(
+ wxEVT_COMMAND_RIBBONGALLERY_CLICKED, GetId());
+ notification.SetEventObject(this);
+ notification.SetGallery(this);
+ notification.SetGalleryItem(m_selected_item);
+ ProcessWindowEvent(notification);
}
}
m_mouse_active_rect = NULL;
if(item == NULL || !item->IsVisible() || IsEmpty())
return;
- int y = item->GetPosition().GetTop();
- int base_y = m_items.Item(0)->GetPosition().GetTop();
- int delta = y - base_y - m_scroll_amount;
- ScrollLines(delta / m_bitmap_padded_size.GetHeight());
+ if(m_art->GetFlags() & wxRIBBON_BAR_FLOW_VERTICAL)
+ {
+ int x = item->GetPosition().GetLeft();
+ int base_x = m_items.Item(0)->GetPosition().GetLeft();
+ int delta = x - base_x - m_scroll_amount;
+ ScrollLines(delta / m_bitmap_padded_size.GetWidth());
+ }
+ else
+ {
+ int y = item->GetPosition().GetTop();
+ int base_y = m_items.Item(0)->GetPosition().GetTop();
+ int delta = y - base_y - m_scroll_amount;
+ ScrollLines(delta / m_bitmap_padded_size.GetHeight());
+ }
}
bool wxRibbonGallery::IsHovered() const