using System;
using System.Collections.Generic;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
namespace compdfkit_tools.PDFControlUI
{
public partial class CPDFBookmarkAddUI : UserControl
{
///
/// 书签添加按钮点击通知
///
public event EventHandler BookmarkAddEvent;
///
/// 书签输入展开通知
///
public event EventHandler BookmarkInputExpandEvent;
private bool toggleState;
private BookmarkChangeData bookmarkData=new BookmarkChangeData();
public CPDFBookmarkAddUI()
{
InitializeComponent();
}
///
/// 书签添加界面切换显示添加输入界面
///
private void Border_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
toggleState = !toggleState;
BookmarkInputPanel.Visibility=toggleState?Visibility.Visible:Visibility.Collapsed;
if(toggleState)
{
BookmarkInputExpandEvent?.Invoke(this, EventArgs.Empty);
}
}
///
/// 取消添加 隐藏 添加界面
///
private void ButtonCancel_Click(object sender, MouseButtonEventArgs e)
{
HideInputUI(true);
}
///
/// 书签添加按钮点击 触发添加通知
///
private void ButtonAdd_Click(object sender, RoutedEventArgs e)
{
if(!string.IsNullOrEmpty(BookmarkText.Text) && bookmarkData!=null)
{
bookmarkData.NewTitle = BookmarkText.Text;
BookmarkAddEvent?.Invoke(this, bookmarkData);
bookmarkData = null;
BookmarkText.Text = string.Empty;
HideInputUI(true);
}
}
public void SetBookmarkChangeData(BookmarkChangeData newChangeData)
{
if(newChangeData!=null)
{
PageNumText.Text = string.Format("Page {0}", newChangeData.PageIndex + 1);
BookmarkText.Text = newChangeData.BookmarkTitle;
}
bookmarkData=newChangeData;
}
public void HideInputUI(bool isHide)
{
toggleState = !isHide;
BookmarkInputPanel.Visibility = isHide? Visibility.Collapsed:Visibility.Visible;
}
}
internal class BoolEnableConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == null)
{
return false;
}
else
{
try
{
if (value is string)
{
string checkValue=value as string;
if(checkValue.Length>0)
{
return true;
}
}
}
catch(Exception ex)
{
}
return false;
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
}