Browse Source

TurboBadger additions

Josh Engebretson 11 years ago
parent
commit
bd51849c45

+ 3 - 3
Source/ThirdParty/TurboBadger/tb_scroll_container.cpp

@@ -214,8 +214,8 @@ bool TBScrollContainer::OnEvent(const TBWidgetEvent &ev)
 		Invalidate();
 		Invalidate();
 		OnScroll(m_scrollbar_x.GetValue(), m_scrollbar_y.GetValue());
 		OnScroll(m_scrollbar_x.GetValue(), m_scrollbar_y.GetValue());
 		return true;
 		return true;
-	}
-	else if (ev.type == EVENT_TYPE_WHEEL && ev.modifierkeys == TB_MODIFIER_NONE)
+	}    
+    else if (ev.type == EVENT_TYPE_WHEEL && ev.modifierkeys == TB_MODIFIER_NONE && !m_ignore_scroll_events)
 	{
 	{
 		double old_val_y = m_scrollbar_y.GetValueDouble();
 		double old_val_y = m_scrollbar_y.GetValueDouble();
 		m_scrollbar_y.SetValueDouble(old_val_y + ev.delta_y * TBSystem::GetPixelsPerLine());
 		m_scrollbar_y.SetValueDouble(old_val_y + ev.delta_y * TBSystem::GetPixelsPerLine());
@@ -223,7 +223,7 @@ bool TBScrollContainer::OnEvent(const TBWidgetEvent &ev)
 		m_scrollbar_x.SetValueDouble(old_val_x + ev.delta_x * TBSystem::GetPixelsPerLine());
 		m_scrollbar_x.SetValueDouble(old_val_x + ev.delta_x * TBSystem::GetPixelsPerLine());
 		return (m_scrollbar_x.GetValueDouble() != old_val_x || m_scrollbar_y.GetValueDouble() != old_val_y);
 		return (m_scrollbar_x.GetValueDouble() != old_val_x || m_scrollbar_y.GetValueDouble() != old_val_y);
 	}
 	}
-	else if (ev.type == EVENT_TYPE_KEY_DOWN)
+    else if (ev.type == EVENT_TYPE_KEY_DOWN && !m_ignore_scroll_events)
 	{
 	{
 		if (ev.special_key == TB_KEY_LEFT && m_scrollbar_x.CanScrollNegative())
 		if (ev.special_key == TB_KEY_LEFT && m_scrollbar_x.CanScrollNegative())
 			ScrollBySmooth(-TBSystem::GetPixelsPerLine(), 0);
 			ScrollBySmooth(-TBSystem::GetPixelsPerLine(), 0);

+ 3 - 0
Source/ThirdParty/TurboBadger/tb_scroll_container.h

@@ -69,6 +69,8 @@ public:
 	void SetAdaptContentSize(bool adapt);
 	void SetAdaptContentSize(bool adapt);
 	bool GetAdaptContentSize() { return m_adapt_content_size; }
 	bool GetAdaptContentSize() { return m_adapt_content_size; }
 
 
+    void SetIgnoreScrollEvents(bool ignore) { m_ignore_scroll_events = ignore; }
+
 	void SetScrollMode(SCROLL_MODE mode);
 	void SetScrollMode(SCROLL_MODE mode);
 	SCROLL_MODE GetScrollMode() { return m_mode; }
 	SCROLL_MODE GetScrollMode() { return m_mode; }
 
 
@@ -94,6 +96,7 @@ protected:
 	bool m_adapt_to_content_size;
 	bool m_adapt_to_content_size;
 	bool m_adapt_content_size;
 	bool m_adapt_content_size;
 	bool m_layout_is_invalid;
 	bool m_layout_is_invalid;
+    bool m_ignore_scroll_events;
 	SCROLL_MODE m_mode;
 	SCROLL_MODE m_mode;
 	void ValidateLayout(const SizeConstraints &constraints);
 	void ValidateLayout(const SizeConstraints &constraints);
 };
 };

+ 19 - 0
Source/ThirdParty/TurboBadger/tb_style_edit.cpp

@@ -2144,6 +2144,25 @@ void TBStyleEdit::SetWrapping(bool wrapping)
 	Reformat(false);
 	Reformat(false);
 }
 }
 
 
+int32 TBStyleEdit::GetCaretLine()
+{
+    int line = 0;
+    TBBlock *block = NULL;
+    TBTextFragment* frag = caret.GetFragment();
+    if (!frag)
+        return 0;
+
+    for (block = blocks.GetFirst(); block; block = block->GetNext())
+    {
+        if (frag->block == block)
+            return line;
+        line++;
+    }
+
+    return 0;
+
+}
+
 // == TBUndoRedoStack ==================================================
 // == TBUndoRedoStack ==================================================
 
 
 TBUndoRedoStack::~TBUndoRedoStack()
 TBUndoRedoStack::~TBUndoRedoStack()

+ 1 - 0
Source/ThirdParty/TurboBadger/tb_style_edit.h

@@ -400,6 +400,7 @@ public:
 	void InsertBreak();
 	void InsertBreak();
 
 
 	TBBlock *FindBlock(int32 y) const;
 	TBBlock *FindBlock(int32 y) const;
+    int32 GetCaretLine();
 
 
 	void ScrollIfNeeded(bool x = true, bool y = true);
 	void ScrollIfNeeded(bool x = true, bool y = true);
 	void SetScrollPos(int32 x, int32 y);
 	void SetScrollPos(int32 x, int32 y);