123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192 |
- //
- // CPDFEditToolBar.m
- // compdfkit-tools
- //
- // Copyright © 2014-2023 PDF Technologies, Inc. All Rights Reserved.
- //
- // THIS SOURCE CODE AND ANY ACCOMPANYING DOCUMENTATION ARE PROTECTED BY INTERNATIONAL COPYRIGHT LAW
- // AND MAY NOT BE RESOLD OR REDISTRIBUTED. USAGE IS BOUND TO THE ComPDFKit LICENSE AGREEMENT.
- // UNAUTHORIZED REPRODUCTION OR DISTRIBUTION IS SUBJECT TO CIVIL AND CRIMINAL PENALTIES.
- //
- #import "CPDFEditToolBar.h"
- #import <ComPDFKit/ComPDFKit.h>
- @interface CPDFEditToolBar()
- @property(nonatomic,strong) UIButton * undoButton;
- @property(nonatomic,strong) UIButton * redoButton;
- @property(nonatomic,strong) UIButton * propertyButton;
- @property(nonatomic,strong) UIButton * textEditButton;
- @property(nonatomic,strong) UIButton * imageEditButton;
- @property(nonatomic,strong) UIView * leftView;
- @property(nonatomic,strong) UIView * rightView;
- @end
- @implementation CPDFEditToolBar
- - (instancetype)initWithPDFView:(CPDFView *)pdfView {
- if (self = [super init]) {
- _pdfView = pdfView;
- }
- return self;
- }
- - (void)layoutSubviews {
- [super layoutSubviews];
-
- [self removeViews];
- [self setUp];
- }
- - (void)removeViews{
- [self.leftView removeFromSuperview];
- [self.rightView removeFromSuperview];
- }
- - (void)setUp {
-
- self.textEditButton = [UIButton buttonWithType:UIButtonTypeCustom];
- [self.textEditButton sizeToFit];
- [self.textEditButton addTarget:self action:@selector(textEditAction:) forControlEvents:UIControlEventTouchUpInside];
- self.textEditButton.frame = CGRectMake(10, 10, self.textEditButton.frame.size.width + 20, 40);
- [self.textEditButton setImage:[UIImage imageNamed:@"CPDFEditText" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateNormal];
- [self.textEditButton setImage:[UIImage imageNamed:@"CPDFEditTextH" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateSelected];
-
- self.imageEditButton = [UIButton buttonWithType:UIButtonTypeCustom];
- [self.imageEditButton sizeToFit];
- [self.imageEditButton addTarget:self action:@selector(imageEditAction:) forControlEvents:UIControlEventTouchUpInside];
- self.imageEditButton.frame = CGRectMake(CGRectGetMaxX(self.textEditButton.frame) + 10, 10, self.imageEditButton.frame.size.width + 20, 40);
- [self.imageEditButton setImage:[UIImage imageNamed:@"CPDFEditImageDefault" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateNormal];
- [self.imageEditButton setImage:[UIImage imageNamed:@"CPDFEditimageHDefault" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateSelected];
-
- self.leftView = [[UIView alloc]initWithFrame:CGRectMake(0, 0,self.bounds.size.width - 160, 60)];
- self.leftView.backgroundColor = [UIColor colorWithRed:240./255. green:240./255. blue:240./255. alpha:1.0];
- [self addSubview:self.leftView];
- [self.leftView addSubview:self.textEditButton];
- [self.leftView addSubview:self.imageEditButton];
- self.leftView.autoresizingMask = UIViewAutoresizingFlexibleWidth;
-
- self.propertyButton = [UIButton buttonWithType:UIButtonTypeCustom];
- [self.propertyButton setBackgroundImage:[UIImage imageNamed:@"CPDFEditUnorderedList" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateNormal];
- self.propertyButton.frame = CGRectMake(20, 20, 20, 20);
- [self.propertyButton addTarget:self action:@selector(propertyAction:) forControlEvents:UIControlEventTouchUpInside];
-
- self.undoButton = [UIButton buttonWithType:UIButtonTypeCustom];
- self.undoButton.frame = CGRectMake(CGRectGetMaxX(self.propertyButton.frame) + 25, 20, 20, 20);
- [self.undoButton addTarget:self action:@selector(undoAction:) forControlEvents:UIControlEventTouchUpInside];
- [self.undoButton setBackgroundImage:[UIImage imageNamed:@"CPDFEditUndo" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateNormal];
-
- [self.undoButton setBackgroundImage:[UIImage imageNamed:@"CPDFEditUndoDisable" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateDisabled];
-
- self.redoButton = [UIButton buttonWithType:UIButtonTypeCustom];
- self.redoButton.frame = CGRectMake(CGRectGetMaxX(self.undoButton.frame) + 25, 20,20, 20);
- [self.redoButton addTarget:self action:@selector(redoAction:) forControlEvents:UIControlEventTouchUpInside];
- [self.redoButton setBackgroundImage:[UIImage imageNamed:@"CPDFEditRedo" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateNormal];
- [self.redoButton setBackgroundImage:[UIImage imageNamed:@"CPDFEditRedoDisable" inBundle:[NSBundle bundleForClass:self.class] compatibleWithTraitCollection:nil] forState:UIControlStateDisabled];
-
- self.rightView = [[UIView alloc]initWithFrame:CGRectMake(CGRectGetMaxX(self.leftView.frame), 0, 160, 60)];
- self.rightView.backgroundColor = [UIColor whiteColor];
- [self addSubview:self.self.rightView];
-
- [self.rightView addSubview:self.redoButton];
- [self.rightView addSubview:self.undoButton];
- [self.rightView addSubview:self.propertyButton];
-
- }
- #pragma mark - Action
- - (void)textEditAction:(UIButton*)sender {
- sender.selected = !sender.selected;
- if(sender.selected == YES){
- [self.imageEditButton setSelected:NO];
- }
-
-
- if(sender.selected == NO && self.imageEditButton.selected == NO){
- if(self.delegate && [self.delegate respondsToSelector:@selector(editClickInToolBar:editMode:)]){
- [self.delegate editClickInToolBar:self editMode:CPDFEditModeAll];
- }
- }else{
- if(self.delegate && [self.delegate respondsToSelector:@selector(editClickInToolBar:editMode:)]){
- [self.delegate editClickInToolBar:self editMode:CPDFEditModeText];
- }
- }
- }
- - (void)imageEditAction:(UIButton*)sender {
- sender.selected = !sender.selected;
-
-
- if(sender.selected == YES){
- [self.textEditButton setSelected:NO];
- }
- if(sender.selected == NO && self.textEditButton.selected == NO){
- if(self.delegate && [self.delegate respondsToSelector:@selector(editClickInToolBar:editMode:)]){
- [self.delegate editClickInToolBar:self editMode:CPDFEditModeAll];
- }
- }else{
- if(self.delegate && [self.delegate respondsToSelector:@selector(editClickInToolBar:editMode:)]){
- [self.delegate editClickInToolBar:self editMode:CPDFEditModeImage];
- }
- }
- }
- - (void)redoAction:(UIButton*)sender {
- if(self.delegate && [self.delegate respondsToSelector:@selector(redoDidClickInToolBar:)]){
- [self.delegate redoDidClickInToolBar:self];
- }
- }
- - (void)undoAction:(UIButton*)sender {
- if(self.delegate && [self.delegate respondsToSelector:@selector(undoDidClickInToolBar:)]){
- [self.delegate undoDidClickInToolBar:self];
- }
- }
- - (void)propertyAction:(UIButton*)sender {
- if(self.delegate && [self.delegate respondsToSelector:@selector(propertyEditDidClickInToolBar:)]){
- [self.delegate propertyEditDidClickInToolBar:self];
- }
- }
- - (void)updateButtonState {
- if (self.pdfView.editingArea.IsTextArea && (self.pdfView.editStatus == CEditingSelectStateEditSelectText ||
- self.pdfView.editStatus == CEditingSelectStateEditTextArea)) {
- //Text
- [self.textEditButton setSelected:YES];
- [self.imageEditButton setSelected:NO];
- } else {
- [self.textEditButton setSelected:NO];
- [self.imageEditButton setSelected:YES];
- }
-
- if(self.pdfView.editStatus == CEditingSelectStateEmpty){
- self.propertyButton.enabled = NO;
- [self.textEditButton setSelected:NO];
- [self.imageEditButton setSelected:NO];
- }else{
- self.propertyButton.enabled = YES;
- }
-
- if ([self.pdfView canEditTextRedo])
- self.redoButton.enabled = YES;
- else
- self.redoButton.enabled = NO;
-
- if ([self.pdfView canEditTextUndo])
- self.undoButton.enabled = YES;
- else
- self.undoButton.enabled = NO;
- }
- @end
|